Site : https://eewiki.net
Voir aussi :
Mettre les dip switch SW 1 et 2 à OFF, le JP9 OUVERT et le JP5 CLOSE.
wget -c https://releases.linaro.org/14.09/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.9-2014.09_linux.tar.xz
tar xf gcc-linaro-arm-none-eabi-4.9-2014.09_linux.tar.xz
export CC=`pwd`/gcc-linaro-arm-none-eabi-4.9-2014.09_linux/bin/arm-none-eabi-
${CC}gcc --version
arm-none-eabi-gcc (crosstool-NG linaro-1.13.1-4.9-2014.09 - Linaro GCC 4.9-2014.09) 4.9.2 20140904 (prerelease)
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
git clone https://github.com/linux4sam/at91bootstrap
cd at91bootstrap/
git checkout 6579cdb -b tmp
make ARCH=arm CROSS_COMPILE=${CC} distclean
make ARCH=arm CROSS_COMPILE=${CC} at91sam9x5eksd_uboot_defconfig
make ARCH=arm CROSS_COMPILE=${CC}
cd ..
git clone git://git.denx.de/u-boot.git
cd u-boot/
git checkout v2016.01-rc1 -b tmp
wget -c https://rcn-ee.com/repos/git/u-boot-patches/v2016.01-rc1/0001-at91sam9x5ek-uEnv.txt-bootz-n-fixes.patch
patch -p1 < 0001-at91sam9x5ek-uEnv.txt-bootz-n-fixes.patch
make ARCH=arm CROSS_COMPILE=${CC} distclean
make ARCH=arm CROSS_COMPILE=${CC} at91sam9x5ek_mmc_defconfig
make ARCH=arm CROSS_COMPILE=${CC}
cd ..
git clone https://github.com/RobertCNelson/armv5_devel
cd armv5_devel/
For v4.1.x (Longterm) :
git checkout origin/v4.1.x -b tmp
sudo apt-get install device-tree-compiler lzma lzop libncurses5-dev
./build_kernel.sh
User | Password |
---|---|
debian | temppwd |
root | root |
wget -c https://rcn-ee.com/rootfs/eewiki/minfs/debian-8.2-minimal-armel-2015-09-07.tar.xz
tar xf debian-8.2-minimal-armel-2015-09-07.tar.xz
export DISK=/dev/sdl1
sudo sfdisk --unit M ${DISK} <<-__EOF__
1,48,0xE,*
,,,-
__EOF__
sudo mkfs.vfat -F 16 ${DISK}1 -n BOOT
sudo mkfs.ext4 ${DISK}2 -L rootfs
sudo cp -v ./at91bootstrap/binaries/at91sam9x5ek-sdcardboot-uboot-3.7.2-rc2.bin /media/boot/BOOT.BIN
sudo cp -v ./u-boot/u-boot.bin /media/boot/
vim /uEnv.txt
#ariag25 board
#fdtfile=/dtbs/at91-ariag25.dtb
#SAM9G15-EK
#fdtfile=/dtbs/at91sam9g15ek.dtb
#SAM9G25-EK
#fdtfile=/dtbs/at91sam9g25ek.dtb
#SAM9G35-EK
#fdtfile=/dtbs/at91sam9g35ek.dtb
#SAM9X25-EK
#fdtfile=/dtbs/at91sam9x25ek.dtb
#SAM9X35-EK
fdtfile=/dtbs/at91sam9x35ek.dtb
#Default u-boot settings:
#console=ttyS0,115200
#optargs=console=tty0
#mmcroot=/dev/mmcblk0p2 ro
#mmcrootfstype=ext4 rootwait fixrtc
#Run custom u-boot commands early:
#uenvcmd=
sudo cp -v ./uEnv.txt /media/boot/
export kernel_version=4.1.13-armv5-r3
sudo tar xfvp ./debian-*-*-armel-*/armel-rootfs-*.tar -C /media/rootfs/
sudo cp -v ./armv5_devel/deploy/${kernel_version}.zImage /media/boot/zImage
sudo mkdir -p /media/boot/dtbs/
sudo tar xfvo ./armv5_devel/deploy/${kernel_version}-dtbs.tar.gz -C /media/boot/dtbs/
sudo tar xfv ./armv5_devel/deploy/${kernel_version}-modules.tar.gz -C /media/rootfs/
sudo sh -c "echo '/dev/mmcblk0p2 / auto errors=remount-ro 0 1' >> /media/rootfs/etc/fstab"
sudo sh -c "echo '/dev/mmcblk0p1 /boot/uboot auto defaults 0 2' >> /media/rootfs/etc/fstab"
sudo vim /media/rootfs/etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
Mettre la SDCard en J6.
Debian GNU/Linux 8 arm ttyS0
arm login: debian
Password: temppwd
Linux arm 4.1.13-armv5-r3 #1 Sat Dec 12 11:28:34 CET 2015 armv5tejl
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 29G 461M 27G 2% /
devtmpfs 60M 0 60M 0% /dev
tmpfs 60M 0 60M 0% /dev/shm
tmpfs 60M 13M 48M 21% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 60M 0 60M 0% /sys/fs/cgroup
/dev/mmcblk0p1 48M 5.8M 43M 12% /boot/uboot
$ free -m
total used free shared buffers cached
Mem: 119 62 56 12 3 38
-/+ buffers/cache: 19 99
Swap: 0 0 0
$ cat /proc/cpuinfo
processor : 0
model name : ARM926EJ-S rev 5 (v5l)
BogoMIPS : 199.06
Features : swp half thumb fastmult edsp java
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant : 0x0
CPU part : 0x926
CPU revision : 5
Hardware : Atmel AT91SAM9
$ ifconfig
eth0 Link encap:Ethernet HWaddr ae:f9:e2:fe:a3:1f
inet addr:192.168.52.12 Bcast:192.168.52.255 Mask:255.255.255.0
inet6 addr: fe80::acf9:e2ff:fefe:a31f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:143 errors:0 dropped:0 overruns:0 frame:0
TX packets:67 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:15891 (15.5 KiB) TX bytes:8955 (8.7 KiB)
Interrupt:36 Base address:0xc000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
$ netstat -at
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:ssh *:* LISTEN
tcp6 0 0 [::]:http [::]:* LISTEN
tcp6 0 0 [::]:ssh [::]:* LISTEN
$ sudo apt-get update
# ssh-keygen -A
ssh-keygen: generating new host keys: RSA1 DSA ECDSA ED25519
# /etc/init.d/ssh restart
$ ssh debian@192.168.52.13
TODO : XWindow (cf. CONFIG_TOUCHSCREEN_ADS7846=y)
Site : www.at91.com/linux4sam/
Voir aussi : www.at91.com/linux4sam/
git clone git://github.com/linux4sam/linux-at91.git
cd linux-at91
git checkout origin/linux-2.6.39-at91 -b linux-2.6.39-at91
export CROSS_COMPILE=`pwd`/../gcc-linaro-arm-none-eabi-4.9-2014.09_linux/bin/arm-none-eabi-
make ARCH=arm at91sam9x5ek_defconfig
make ARCH=arm menuconfig
make ARCH=arm
make ARCH=arm dtbs
Site : www.at91.com/linux4sam/
mkdir yocto-pocky
cd yocto-pocky
git clone git://git.yoctoproject.org/poky -b jethro
git clone git://git.openembedded.org/meta-openembedded -b jethro
git clone git://github.com/meta-qt5/meta-qt5.git -b jethro
git clone git://github.com/linux4sam/meta-atmel.git -b jethro
cd poky
source oe-init-build-env build-atmel-1
vim conf/bblayers.conf
LCONF_VERSION = "6"
BBPATH = "${TOPDIR}"
BBFILES ?= ""
BSPDIR := "${@os.path.abspath(os.path.dirname(d.getVar('FILE', True)) + '/../../..')}"
BBLAYERS ?= " \
${BSPDIR}/meta-atmel \
${BSPDIR}/meta-qt5 \
${BSPDIR}/poky/meta \
${BSPDIR}/poky/meta-yocto \
${BSPDIR}/poky/meta-yocto-bsp \
${BSPDIR}/meta-openembedded/meta-oe \
${BSPDIR}/meta-openembedded/meta-networking \
${BSPDIR}/meta-openembedded/meta-python \
${BSPDIR}/meta-openembedded/meta-multimedia \
"
BBLAYERS_NON_REMOVABLE ?= " \
${BSPDIR}/poky/meta \
${BSPDIR}/poky/meta-yocto \
"
vim conf/local.conf
[...]
MACHINE ??= "at91sam9x5ek"
[...]
DL_DIR ?= "${TOPDIR}/downloads"
[...]
PACKAGE_CLASSES ?= "package_ipk"
[...]
USER_CLASSES ?= "buildstats image-mklibs"
[...]
DISTRO = "poky-atmel"
EXTRA_IMAGE_FEATURES = "debug-tweaks"
EXTRA_IMAGE_FEATURES = "tools-sdk tools-debug debug-tweaks"
sudo apt-get install diffstat gawk chrpath texinfo texi2html libsdl1.2-dev
Remarque : Il y a quatre noyaux linux dans le recipes-kernel : linux-at91-3.6.9, linux-at91-3.10, linux-at91-3.18 et linux-at91-4.1. Le linux-at91-3.6.9 ne fonctionne pas pour un problème de machine non reconnue (at91sam9x35ek). On conserve seulement le linux-at91-4.1.
mv ../../meta-atmel/recipes-kernel/linux/linux-at91_3.6.9.bb ../../meta-atmel/recipes-kernel/linux/.linux-at91_3.6.9.bb
mv ../../meta-atmel/recipes-kernel/linux/linux-at91_3.10.bb ../../meta-atmel/recipes-kernel/linux/.linux-at91_3.10.bb
mv ../../meta-atmel/recipes-kernel/linux/linux-at91_3.18.bb ../../meta-atmel/recipes-kernel/linux/.linux-at91_3.18.bb
On démarre la fabrication de la distribution :
bitbake core-image-minimal
Flashage :
$ ../../meta-atmel/scripts/flasher.sh core-image-minimal /dev/ttyACM0 at91sam9x35ek
Faire un reset.
...
Poky (Yocto Project Reference Distro) 2.0 at91sam9x5ek /dev/ttyS0
at91sam9x5ek login: root
root@at91sam9x5ek:~# uname -a
Linux at91sam9x5ek 4.1.0-linux4sam_5.0-00008-gdffd70a-dirty #1 Tue Dec 15 06:26:03 CET 2015 armv5tejl GNU/Linux
# cat /proc/cpuinfo
processor : 0
model name : ARM926EJ-S rev 5 (v5l)
BogoMIPS : 198.76
Features : swp half thumb fastmult edsp java
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant : 0x0
CPU part : 0x926
CPU revision : 5
Hardware : Atmel AT91SAM9
# free -m
total used free shared buffers
Mem: 122260 10552 111708 164 0
-/+ buffers: 10552 111708
Swap: 0 0 0
# df -h
Filesystem Size Used Available Use% Mounted on
ubi0:rootfs 215.4M 3.0M 212.4M 1% /
devtmpfs 51.6M 0 51.6M 0% /dev
tmpfs 59.7M 116.0K 59.6M 0% /run
tmpfs 59.7M 48.0K 59.6M 0% /var/volatile
# ifconfig
eth0 Link encap:Ethernet HWaddr 2E:96:D1:1B:3B:3A
inet addr:192.168.52.28 Bcast:192.168.52.255 Mask:255.255.255.0
inet6 addr: fe80::2c96:d1ff:fe1b:3b3a/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:839 errors:0 dropped:140 overruns:0 frame:0
TX packets:108 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:51827 (50.6 KiB) TX bytes:9948 (9.7 KiB)
Interrupt:37 Base address:0xc000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Version Qt :
vim conf/local.conf
LICENSE_FLAGS_WHITELIST += "commercial"
SYSVINIT_ENABLED_GETTYS = ""
bitbake atmel-qt5-demo-image
Flashage :
$ ../../meta-atmel/scripts/flasher.sh atmel-qt5-demo-image /dev/ttyACM0 at91sam9x35ek
Faire un reset.
bitbake core-image-minimal -c populate_sdk
Ou :
bitbake meta-toolchain
. /opt/poky-atmel/2.0/environment-setup-armv5e-poky-linux-gnueabi
vim Makefile
hello-world : hello-world.o
$(CXX) $(LDFLAGS) $< -o $@
clean:
@rm -f hello-world hello-world.o
make
Copier avec scp et tester.
Site : www.at91.com/linux4sam/
TODO
Site : www.at91.com/android4sam/
TODO