1. Первоначальная прошивка:
#Скачиваем
wget http://module.ru/mb7707/toolchains/x86_64/arm-module-linux-gnueabi-25082014.tgz
# Модифицируем flash.sh чтобы edcltool указывал на нужный интерфейс
# Собираем програму для заливки:
git clone https://github.com/RC-MODULE/edcltool.git
Для debian/ubuntu надо lua5.1-dev, libelf-dev, autoconf, automake, build-essential
После сборки замыкаем перемычку, подымаем сетевой интерфейс, который для связи с MB77.07, запускаем ./flash.sh
После запуска можно смело логиниться, например через minicom и uart:
minicom -s
# настраиваем serial port setup
#F - Hardware Flow Control : No
#G - Software Flow Control : No
# выходим по ESC,q или meta,q
minicom -D /dev/ttyUSB0 -b 38400
2. Как смонтировать и пересобрать ubifs?
apt-get install mtd-utils
modprobe nandsim first_id_byte=0xEC second_id_byte=0xD3 third_id_byte=0x90 fourth_id_byte=0x95 cache_file=/root/nandsim-cache.bin
flash_erase /dev/mtd0 0 0
dd if=fw-debian-wheezy-3.10-ubifs-25082014/filesystem.ubifs of=/dev/mtd0 bs=2048
modprobe ubi mtd=0,2048
mkdir /mnt/ubifs
mount /dev/ubi0_0 /mnt/ubifs
mkfs.ubifs -r /mnt/ubifs -m 2048 -e 126976 -c 2047 -o ubifs.img
ubinize -o ubi.img -m 2048 -p 128KiB -s 2048 ubinize.cfg
cp ubi.img fw-debian-wheezy-3.10-ubifs-25082014/filesystem.ubifs
ubinize.cfg:
[ubifs]
mode=ubi
image=ubifs.img
vol_id=0
vol_size=200MiB
vol_type=dynamic
vol_name=rootfs
vol_flags=autoresize
Далее можно прошиться как в пункте первом, перед сборкой fs можно что-нибудь поменять.
3. Как собрать свою root fs для debian wheezy?
apt-get install debootstrap
debootstrap --verbose --foreign --arch=armel wheezy debrootfs ftp://ftp.ru.debian.org/debian
apt-get install qemu qemu-user-static
cp /usr/bin/qemu-arm-static debrootfs/usr/bin
chroot debrootfs /debootstrap/debootstrap --second-stage
chroot debrootfs /usr/bin/passwd root
mount -t proc none debrootfs/proc
mount -t sysfs none debrootfs/sys
mount -t devpts none debrootfs/dev/pts
chroot debrootfs
echo 'deb http://ftp.ru.debian.org/debian/ wheezy main contrib non-free' >> /etc/apt/sources.list
echo 'T0:23:respawn:/sbin/getty -L ttyS0 38400 vt100' >> /etc/inittab
echo -e "\nauto eth0\niface eth0 inet static\n\taddress 192.168.0.7\n\tnetmask 255.255.255.0\n\tgateway 192.168.0.1" >> /etc/network/interfaces
exit
umount debrootfs/*
Сборка файловой системы:
mkfs.ubifs -r /root/debrootfs -m 2048 -e 126976 -c 5000 -o ubifs.img
ubinize -o ubi.img -m 2048 -p 128KiB -s 2048 ubinize.cfg
cp ubi.img fw-debian-wheezy-3.10-ubifs-25082014/filesystem.ubifs
4. Сборка ядра
Собираем компрессию для ubifs, выключаем моргалку
apt-get install libncurses-dev u-boot-tools lzop
wget http://module.ru/mb7707/toolchains/x86_64/arm-module-linux-gnueabi-25082014.tgz
tar xzf arm-module-linux-gnueabi-25082014.tgz
export PATH=$PWD/arm-module-linux-gnueabi/bin:$PATH
git clone https://github.com/RC-MODULE/linux-3.10.x.git
cd linux-3.10.x/
ARCH=arm make uemd_defconfig
# Компрессия вроде как включается так:
# CONFIG_UBIFS_FS_ADVANCED_COMPR=y
# CONFIG_UBIFS_FS_LZO=y
# CONFIG_UBIFS_FS_ZLIB=y
# Выключаем назойливое моргание
# # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
ARCH=arm make menuconfig
ARCH=arm CROSS_COMPILE=arm-module-linux-gnueabi- make -j2 uImage dtbs
cp ./arch/arm/boot/dts/module-mb7707.dtb ../fw-debian-wheezy-3.10-ubifs-25082014/mb77.07.dtb
cp arch/arm/boot/uImage ../fw-debian-wheezy-3.10-ubifs-25082014/
Теперь в скрипте сборки ubifs можно запилить:
mkfs.ubifs -r /root/debrootfs -m 2048 -e 126976 -c 5000 -x favor_lzo -X 5 -o ubifs.img
ubinize -o ubi.img -m 2048 -p 128KiB -s 2048 ubinize.cfg