Atualização Kernel no Iomega kirkwood debian


Primeiramente gostaria de salientar que não sou o autor principal do conteúdo deste artigo. A minha intenção é de mostrar o que outros autores tem realizado (referenciando links para o conteúdo original) neste blog até como um guia pessoal para uso próprio e ainda compartilhar minhas anotações e pequenas modificações que realizo no conteúdo, desejando que possa ajudar mais alguém em algum lugar.
First and foremost, I take no credit for any of this post’s content. I am really just taking what others have done (which I have links to bellow) and am putting it on my blog for a personal reference and hopefully the small changes that I made to their guides will help someone somewhere.

link: https://sites.google.com/site/ubuntu4us/artigos/ferramentas-de-sistema/kernel-e-modulos/recompilar-kernel-do-debian

apt-get install gcc-arm-linux-gnueabi quilt apt-get devscripts u-boot-tools lxc


Primeiro crie um ambiente de desenvolvimento utilizando containers:
cd ~/
lxc-checkconfig
sudo lxc-create -t debian -n crossdebian -- -r jessie 

Preciso verificar se precisa da opção [-a i686]


Para garantir que o container com jessie utilize o sysvinit ao invés do systemd:
sudo lxc-stop -n crossdebian
chroot /var/lib/lxc/crossdebian/rootfs
apt-get install sysvinit-core
echo "lxc.aa_profile = unconfined" | sudo tee -a /var/lib/lxc/crossdebian/config
sudo lxc-start -d -n crossdebian
sudo lxc-attach -n crossdebian -- apt-get update
sudo lxc-attach -n crossdebian -- apt-get dist-upgrade -y

Para iniciar um console no cotainer:
sudo lxc-console -n crossdebian -t 1

Preste atenção nas instruções abaixo:
Type <Ctrl+a q> to exit the console, <Ctrl+a Ctrl+a> to enter Ctrl+a itself
o usuário root tem a senha root

Para parar um container
sudo lxc-halt -n crossdebian
sudo lxc-stop -n crossdebian

Para saber o status do container:
sudo lxc-ls crossdebian -f

Para permitir acesso ssh com root:
sudo lxc-attach -n crossdebian -- sed -i 's|PermitRootLogin without-password|PermitRootLogin yes|' /etc/ssh/sshd_config
sudo lxc-attach -n crossdebian -- service ssh restart

Para entrar no sistema de arquivos do container:
chroot /var/lib/lxc/crossdebian/rootfs


Dentro do ambiente de desenvovimento:
sudo lxc-console -n crossdebian -t 1

Adicione o repo do embedian:
echo "deb http://emdebian.org/tools/debian/ jessie main" >> /etc/apt/sources.list 
apt-get install curl
curl http://emdebian.org/tools/debian/emdebian-toolchain-archive.key | apt-key add - 

O pacote crossbuild-essential-armel esta instavel ainda:
echo "deb http://ftp.debian.org/debian/ unstable main" >> /etc/apt/sources.list
echo "APT::Default-Release \"jessie\";" > /etc/apt/apt.conf.d/20defaultrelease

Adicione o repo da fonte:
echo "deb-src http://mi.mirror.garr.it/mirrors/debian/ jessie main contrib non-free" >> /etc/apt/sources.list 

dpkg --add-architecture armel 
dpkg --print-foreign-architectures

apt-get update 
apt-get install wget devscripts crossbuild-essential-armel kernel-package gcc-arm-linux-gnueabi ncurses-dev


Pegue os arquivos fonte:
cd /usr/src 
apt-get source linux

Configure o kernel:
export CC=arm-linux-gnueabi-gcc
export CROSS_COMPILE=arm-linux-gnueabi-
export ARCH=arm
export DEB_HOST_ARCH=armel 
export CFLAGS="-march=armv5te -mfloat-abi=soft -marm" 
export LOCALVERSION=""
export INSTALL_MOD_PATH=../modules
export MODULE_LOC=../modules

cd /usr/src/linux-3.16.7-ckt11
make-kpkg clean 
wget -O- https://raw.githubusercontent.com/daniviga/ix2-200/master/configs/config-3.16.0-4-kirkwood > .config 
make oldconfig


Gere o arquivo DTB
make dtbs


Compile o kernel:


make menuconfig 
fakeroot make-kpkg -j2 --arch arm --cross-compile arm-linux-gnueabi- --initrd kernel_image kernel_headers modules build modules_image

ls /usr/src/linux-3.16.7-ckt11/debian/linux-image-3.16.7-ckt11/boot -l
ls /usr/src/linux-3.16.7-ckt11/arch/arm/boot/dts -l


Acrescente o DTB ao Kernel:

cp arch/arm/boot/dts/kirkwood-iomega_ix2_200.dtb /boot 
cd /boot 
cat vmlinuz-3.16.0-4-kirkwood kirkwood-iomega_ix2_200.dtb > vmlinuz-3.16.0-4-kirkwood-dtb


Acrescente o Kernel no Iomega Ix2-200


mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initramfs -d initrd.img-3.16.0-4-kirkwood uInitrd mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n Linux+dtb -d vmlinuz-3.16.0-4-kirkwood-dtb uImage-dtb


flash_eraseall /dev/mtd0 
flash_eraseall /dev/mtd1 
nandwrite -p /dev/mtd0 /boot/uImage-dtb 
nandwrite -p /dev/mtd1 /boot/uInitrd


Exemplo de boot pelo flash interno:
setenv mtdparts 'mtdparts=orion_nand:0x100000@0x000000(uboot)ro,0x20000@0xA0000(uboot_env),0x300000@0x100000(uImage),0x1000000@0x540000(uInitrd)' 
setenv bootargs_console 'console=ttyS0,115200 mtdparts=orion_nand:0x300000@0x100000(uImage),0x1000000@0x540000(uInitrd) root=/dev/sda1' 
setenv bootcmd 'setenv bootargs $(bootargs_console); nand read 0x800000 uImage; nand read 0x1100000 uInitrd; bootm 0x00800000 0x01100000' 
saveenv 
reset







Para utilizar o fonte do kernel do debian jessie faça o download no site:
link: https://packages.debian.org/jessie/kernel/linux-image-3.16.0-4-kirkwood

Ou se preferir:
cd /usr/local/src
sudo wget http://security.debian.org/debian-security/pool/updates/main/l/linux/linux_3.16.7-ckt11.orig.tar.xz
sudo wget http://security.debian.org/debian-security/pool/updates/main/l/linux/linux_3.16.7-ckt11-1+deb8u2.debian.tar.xz
sudo tar xvfJ linux_3.16.7-ckt11.orig.tar.xz
sudo tar xpvf linux_3.16.7-ckt11-1+deb8u2.debian.tar.xz

cd linux-3.16.7-ckt11

sudo wget -O .config https://sites.google.com/site/ubuntu4us/artigos/configuracao-de-hardware/network-attached-storage/atualizacao-kernel-no-iomega-kirkwood-debian/config-v3.4.4?attredirects=0&d=1

export CFLAGS="-march=armv5te -mfloat-abi=soft -marm" 
export CROSS_COMPILE="arm-linux-gnueabi-" 
export ARCH="arm"
export LOCALVERSION="arvati" 
export INSTALL_MOD_PATH=../modules

make oldconfig

make -j8 uImage 2>&1 1>uImage.stdout.log | tee uImage.stderr.log
make -j8 modules 2>&1 1>modules.stdout.log | tee modules.stderr.log
make modules_install 2>&1 1>modules_install.stdout.log | tee modules_install.stderr.log


Compacte e copie os arquivos para o alvo:
tar -czf ../modules.tar.gz ../modules
scp ../modules.tar.gz root@192.168.1.13:/root
scp System.map root@192.168.1.13:/root/System.map-3.2.60
scp .config root@192.168.1.13:/root/config-3.2.60
scp arch/arm/boot/uImage root@192.168.1.13:/root/uImage-3.2.60






O URL específico do gadget não foi encontrado



ċ
0001-ARM-Kirkwood-Add-configuration-for-MPP12-as-GPIO.patch
(1k)
Ademar Arvati Filho,
24 de set de 2014 17:49
ċ
0001-Modified-rd88f6281-setup-file-to-support-ix2-200.patch
(7k)
Ademar Arvati Filho,
24 de set de 2014 17:49
ċ
config-v3.4.4
(75k)
Ademar Arvati Filho,
1 de ago de 2015 10:09
ċ
config.txt
(82k)
Ademar Arvati Filho,
24 de set de 2014 17:52
Comments