Difference between revisions of "IoTGateway/BSP/Linux/Quark/BuildingDebianJessieRootfs"
From ESS-WIKI
(13 intermediate revisions by 2 users not shown) | |||
Line 6: | Line 6: | ||
--> | --> | ||
− | = Host Required = | + | = Host OS Required = |
− | == Ubuntu 14.04 LTS == | + | |
− | :All | + | == Ubuntu 14.04 LTS amd64 == |
+ | |||
+ | :All procedures are verified in Ubuntu 14.04 LTS amd64. | ||
+ | |||
+ | = Prerequisites = | ||
+ | |||
+ | == image-full-quark.ext3 == | ||
+ | |||
+ | :extract from [[IoTGateway/BSP/Linux/Quark/Yocto_LBV2_User_Guide#Prebuilt_image_pack|prebuilt image pack]] or [[IoTGateway/BSP/Linux/Quark/Yocto_LBV2_User_Guide#To_build_all_image_files|build a new one]] | ||
= Building Procedures = | = Building Procedures = | ||
− | == first stage | + | == first stage == |
Line 18: | Line 26: | ||
SID=jessie | SID=jessie | ||
IMAGE=./image-$SID-quark.ext3 | IMAGE=./image-$SID-quark.ext3 | ||
+ | IMAGE_BSP=./image-full-quark.ext3 | ||
ROOTFS=~/rootfs | ROOTFS=~/rootfs | ||
− | dd if=/dev/zero of=$IMAGE bs= | + | ROOTFS_BSP=~/rootfs_bsp |
− | mkfs.ext3 $IMAGE | + | dd if=/dev/zero of=$IMAGE bs=1M count=1800 |
− | mkdir $ROOTFS | + | sudo mkfs.ext3 -F $IMAGE |
+ | mkdir -p $ROOTFS $ROOTFS_BSP | ||
+ | sudo mount -o loop,ro $IMAGE_BSP $ROOTFS_BSP | ||
sudo mount -o loop $IMAGE $ROOTFS | sudo mount -o loop $IMAGE $ROOTFS | ||
+ | tar cf - -C $ROOTFS_BSP lib/{firmware,modules} | sudo tar xvf - -C $ROOTFS | ||
+ | sudo umount $ROOTFS_BSP | ||
sudo debootstrap --arch=i386 --foreign $SID $ROOTFS | sudo debootstrap --arch=i386 --foreign $SID $ROOTFS | ||
+ | sudo cp /etc/resolv.conf $ROOTFS/etc | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | == second stage == | ||
− | |||
− | |||
− | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | |||
HOME=/root sudo chroot $ROOTFS /bin/bash --login -i | HOME=/root sudo chroot $ROOTFS /bin/bash --login -i | ||
− | + | SID=jessie | |
− | + | export LANG=C | |
− | + | /debootstrap/debootstrap --second-stage | |
− | |||
− | |||
cat <<EOT > /etc/apt/sources.list | cat <<EOT > /etc/apt/sources.list | ||
− | deb http:// | + | deb http://ftp.uk.debian.org/debian $SID main contrib non-free |
− | + | deb-src http://ftp.uk.debian.org/debian $SID main contrib non-free | |
− | + | deb http://ftp.uk.debian.org/debian $SID-updates main contrib non-free | |
− | + | deb-src http://ftp.uk.debian.org/debian $SID-updates main contrib non-free | |
− | + | deb http://security.debian.org/debian-security $SID/updates main contrib non-free | |
− | deb-src http:// | + | deb-src http://security.debian.org/debian-security $SID/updates main contrib non-free |
EOT | EOT | ||
− | |||
apt-get update | apt-get update | ||
− | + | apt-get install locales dialog | |
− | apt-get install | + | dpkg-reconfigure locales |
− | + | dpkg-reconfigure tzdata | |
− | + | apt-get install ntpdate | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | dpkg - | ||
− | |||
− | apt-get install | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
sed -i "s/^root:[^:]\+:/root::/" /etc/shadow | sed -i "s/^root:[^:]\+:/root::/" /etc/shadow | ||
echo "quark" > /etc/hostname | echo "quark" > /etc/hostname | ||
− | |||
− | |||
cat >> /etc/network/interfaces << EOT | cat >> /etc/network/interfaces << EOT | ||
Line 82: | Line 68: | ||
EOT | EOT | ||
− | sed -i | + | sed -i '/# "\\e\[5~": history/s/^# "\\e\[5~"/"\\e\[A"/' /etc/inputrc |
− | + | sed -i '/# "\\e\[6~": history/s/^# "\\e\[6~"/"\\e\[B"/' /etc/inputrc | |
− | sed -i | ||
− | |||
− | |||
− | |||
sed -i '/^# .*dircolors/s/^# //; /^# .*LS_OPTIONS/s/^# //;' /root/.bashrc | sed -i '/^# .*dircolors/s/^# //; /^# .*LS_OPTIONS/s/^# //;' /root/.bashrc | ||
sed -i "s/\xf0\x0f\xb1\x8b/\x90\x0f\xb1\x8b/g" /lib/i386-linux-gnu/libpthread-2.19.so | sed -i "s/\xf0\x0f\xb1\x8b/\x90\x0f\xb1\x8b/g" /lib/i386-linux-gnu/libpthread-2.19.so | ||
sed -i '/\[Service\]/a Environment="TERM=xterm"' "/lib/systemd/system/serial-getty@.service" | sed -i '/\[Service\]/a Environment="TERM=xterm"' "/lib/systemd/system/serial-getty@.service" | ||
− | + | logout | |
− | |||
− | |||
− | |||
</syntaxhighlight> | </syntaxhighlight> | ||
− | == | + | == post-config == |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | |||
sudo rm $ROOTFS/etc/resolv.conf | sudo rm $ROOTFS/etc/resolv.conf | ||
+ | sudo umount $ROOTFS | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | == sdcard\boot\grub\grub.conf == | ||
+ | <pre>default 2 | ||
+ | timeout 5 | ||
− | + | color white/blue white/cyan | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | title Quark X1000 kernel-SPI initrd-SPI IMR-On IO-APIC/HPET NoEMU | |
− | + | kernel --spi root=/dev/ram0 console=ttyS1,115200n8 earlycon=uart8250,mmio32,$EARLY_CON_ADDR_REPLACE,115200n8 reboot=efi,warm apic=debug rw | |
− | + | initrd --spi | |
− | |||
− | |||
− | |||
− | + | title Quark X1000 kernel-MassStorage iot-devkit on SD IMR-On IO-APIC/HPET NoEMU debug | |
+ | root (hd0,0) | ||
+ | kernel /bzImage root=/dev/mmcblk0p2 rootwait console=ttyS1,115200n8 earlycon=uart8250,mmio32,$EARLY_CON_ADDR_REPLACE,115200n8 reboot=efi,warm apic=debug rw LABEL=boot debugshell=5 | ||
− | + | title Quark X1000 kernel-MassStorage initrd-MassStorage RootFS-MassStorage IMR-On IO-APIC/HPET NoEMU debug | |
+ | root (hd0,0) | ||
+ | kernel /bzImage root=/dev/ram0 console=ttyS1,115200n8 earlycon=uart8250,mmio32,$EARLY_CON_ADDR_REPLACE,115200n8 reboot=efi,warm apic=debug rw LABEL=boot debugshell=5 rootimage=image-full-quark.ext3 | ||
+ | initrd /core-image-minimal-initramfs-quark.cpio.gz | ||
− | + | </pre> | |
− |
Latest revision as of 10:29, 5 January 2018
Contents
Host OS Required
Ubuntu 14.04 LTS amd64
- All procedures are verified in Ubuntu 14.04 LTS amd64.
Prerequisites
image-full-quark.ext3
- extract from prebuilt image pack or build a new one
Building Procedures
first stage
SID=jessie
IMAGE=./image-$SID-quark.ext3
IMAGE_BSP=./image-full-quark.ext3
ROOTFS=~/rootfs
ROOTFS_BSP=~/rootfs_bsp
dd if=/dev/zero of=$IMAGE bs=1M count=1800
sudo mkfs.ext3 -F $IMAGE
mkdir -p $ROOTFS $ROOTFS_BSP
sudo mount -o loop,ro $IMAGE_BSP $ROOTFS_BSP
sudo mount -o loop $IMAGE $ROOTFS
tar cf - -C $ROOTFS_BSP lib/{firmware,modules} | sudo tar xvf - -C $ROOTFS
sudo umount $ROOTFS_BSP
sudo debootstrap --arch=i386 --foreign $SID $ROOTFS
sudo cp /etc/resolv.conf $ROOTFS/etc
second stage
HOME=/root sudo chroot $ROOTFS /bin/bash --login -i
SID=jessie
export LANG=C
/debootstrap/debootstrap --second-stage
cat <<EOT > /etc/apt/sources.list
deb http://ftp.uk.debian.org/debian $SID main contrib non-free
deb-src http://ftp.uk.debian.org/debian $SID main contrib non-free
deb http://ftp.uk.debian.org/debian $SID-updates main contrib non-free
deb-src http://ftp.uk.debian.org/debian $SID-updates main contrib non-free
deb http://security.debian.org/debian-security $SID/updates main contrib non-free
deb-src http://security.debian.org/debian-security $SID/updates main contrib non-free
EOT
apt-get update
apt-get install locales dialog
dpkg-reconfigure locales
dpkg-reconfigure tzdata
apt-get install ntpdate
sed -i "s/^root:[^:]\+:/root::/" /etc/shadow
echo "quark" > /etc/hostname
cat >> /etc/network/interfaces << EOT
auto eth0
iface eth0 inet dhcp
EOT
sed -i '/# "\\e\[5~": history/s/^# "\\e\[5~"/"\\e\[A"/' /etc/inputrc
sed -i '/# "\\e\[6~": history/s/^# "\\e\[6~"/"\\e\[B"/' /etc/inputrc
sed -i '/^# .*dircolors/s/^# //; /^# .*LS_OPTIONS/s/^# //;' /root/.bashrc
sed -i "s/\xf0\x0f\xb1\x8b/\x90\x0f\xb1\x8b/g" /lib/i386-linux-gnu/libpthread-2.19.so
sed -i '/\[Service\]/a Environment="TERM=xterm"' "/lib/systemd/system/serial-getty@.service"
logout
post-config
sudo rm $ROOTFS/etc/resolv.conf
sudo umount $ROOTFS
sdcard\boot\grub\grub.conf
default 2 timeout 5 color white/blue white/cyan title Quark X1000 kernel-SPI initrd-SPI IMR-On IO-APIC/HPET NoEMU kernel --spi root=/dev/ram0 console=ttyS1,115200n8 earlycon=uart8250,mmio32,$EARLY_CON_ADDR_REPLACE,115200n8 reboot=efi,warm apic=debug rw initrd --spi title Quark X1000 kernel-MassStorage iot-devkit on SD IMR-On IO-APIC/HPET NoEMU debug root (hd0,0) kernel /bzImage root=/dev/mmcblk0p2 rootwait console=ttyS1,115200n8 earlycon=uart8250,mmio32,$EARLY_CON_ADDR_REPLACE,115200n8 reboot=efi,warm apic=debug rw LABEL=boot debugshell=5 title Quark X1000 kernel-MassStorage initrd-MassStorage RootFS-MassStorage IMR-On IO-APIC/HPET NoEMU debug root (hd0,0) kernel /bzImage root=/dev/ram0 console=ttyS1,115200n8 earlycon=uart8250,mmio32,$EARLY_CON_ADDR_REPLACE,115200n8 reboot=efi,warm apic=debug rw LABEL=boot debugshell=5 rootimage=image-full-quark.ext3 initrd /core-image-minimal-initramfs-quark.cpio.gz