- 1-2 hours of your life
- build envirment for the Kernel
- device with Ubuntu and nvflash
- AC100
- mini-usb cabel
- usb-stick >512MB
-
setup the build enviorment
-
create the work directory:
mkdir -p ~/ac100/output_files
-
-
get the kernel source
-
get the sources:
curl -LO https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.5.2.tar.xz
cd linux-4.5.2
-
-
build the kernel
-
genrate the config
make tegra_defconfig ARCH=arm
-
adjust the config for:
-
Kernel low-level debugging options
in Kernel hacking
to OFF
-
USB Video Class
in Device drivers --> Multimedia support --> Media USB Adapters
to MODULE
-
USB NETWORK Device [only if like to use anadapter] you will find the availbe Modules under
in Device drivers --> Network device support --> USB Network Adapters
to MODULE
make menuconfig ARCH=arm
-
-
build zIMAGE, modules, dtb
make zImage modules dtbs INSTALL_MOD_STRIP=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
-
build install-modules
make modules_install INSTALL_MOD_PATH=../output_files INSTALL_MOD_STRIP=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
-
copy dtb and zImage to the output_files directory
cp arch/arm/boot/dts/tegra20-paz00.dtb ../output_files
cp arch/arm/boot/zImage ../output_files
-
-
make output flashable
-
change into output_files directory
cd ../output_files
-
create needed folders
mkdir boot usr
-
move lib into usr [to avoid breaks of arch]
mv lib usr
-
move zImage and dtb into boot
mv zImage boot
mv tegra20-paz00.dtb boot
-
create boot.cmd
cat <<'EOF' > ~/ac100/output_files/boot/boot.cmd setenv bootargs 'root=/dev/mmcblk0p1 rootfstype=ext4 rootwait' ext2load mmc 0:1 0x1000000 /boot/zImage ext2load mmc 0:1 0x2000000 /boot/tegra20-paz00.dtb bootz 0x1000000 - 0x2000000 EOF
-
create directory etc
mkdir etc
-
add fstab
cat <<'EOF' > ~/ac100/output_files/etc/fstab /dev/mmcblk0p1 / ext4 rw,noatime,commit=30,barrier=1,data=ordered 0 0 EOF
-
pack the files
tar cf kernel.tar boot usr etc
-
-
prepare pen drive
-
copy kernel.tar to pen drive
cp ~/ac100/output_files/kernel.tar < mountpoint of the pen drive >
-
get Arch Linux filesystem for Tegra systems
curl -o < mountpoint of the pen drive > http://archlinuxarm.org/os/ArchLinuxARM-trimslice-latest.tar.gz
-
-
boot AC100 into recovery mode
- press ctrl + esc + Power
-
install on the flash host nvflash
curl -O /tmp https://phablet-paz00.googlecode.com/files/nvflash_20110628-2_all.deb ; sudo dpkg -i nvflash_20110628-2_all.deb
-
connect AC100 with your flash Host
-
get and boot a minimal SOSUBOOT
-
on the flash Host
curl -O /tmp https://dl.dropboxusercontent.com/u/40761340/Test/sos-uboot-r5-2013-11-10.bin nvflash --bl sos-uboot-r5-2013-11-10.bin --go
-
on the AC100
./switch-to-uboot
-
-
prepare the AC100
-
create one new partions [maybe u like to backup the old once]
parted /dev/mmcblk0 mklabel gpt parted /dev/mmcblk0 -s mkpart primary 7168s '100%' parted /dev/mmcblk0 -s name 1 UDB
-
create filesystem
mkfs.ext4 /dev/mmcblk0p1
-
-
Install Kernel and OS
-
create mount point
mkdir /target mkdir /source
-
mount the emmc
mount -t ext4 /dev/mmcblk0p1 /target
-
inserte the stick and mount it
mount -t vfat /dev/sda1 /source
-
change into directory /target
cd /target
-
extract the ARCH Linux filesystem
gzip -dc /source/ArchLinuxARM-trimslice-latest.tar.gz | tar xp
-
erase /boot to add new builded kernel for the AC100
rm -rf boot/*
-
unpack kernel.tar
tar xf /source/kern.tar
-
change into the /boot directory
cd /target/boot
-
make the kernel bootable
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "ubootscript" -d boot.cmd boot.scr
-
sync for safety
sync
-
unmount the pen drive and the emmc
cd /; umount /target; umount /source
-
Source:
Hi, thanks for the reply. I still have a couple of question for you.
Does this mean that you replace the file with an older version from "working" kernels?
Also did you change anything else in the config when building the kernel other than the three things mentioned by Nokius?
Personally I'm still at kernel 5.11.2, I've stopped updating it since it's a long process and I have no issues other than the poweroff. To be fair though I just use the shell. Thanks again.