Add Acer Tegra based Chromebook build script
This script adds the Acer Tegra based Chromebook build script. This uses the "old" way of booting Chromebooks due to the Tegra Chromebook using depthcharge and not u-boot for it's bootloader. We cannot chainload u-boot just yet, because it's not stable enough. Signed-off-by: Steev Klimaszewski <threeway@gmail.com>
This commit is contained in:
600
chromebook-arm-acer.sh
Executable file
600
chromebook-arm-acer.sh
Executable file
@@ -0,0 +1,600 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [[ $# -eq 0 ]] ; then
|
||||
echo "Please pass version number, e.g. $0 1.0.1"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
basedir=`pwd`/nyan-$1
|
||||
|
||||
# Make sure that the cross compiler can be found in the path before we do
|
||||
# anything else, that way the builds don't fail half way through.
|
||||
export CROSS_COMPILE=arm-linux-gnueabihf-
|
||||
if [ $(compgen -c $CROSS_COMPILE | wc -l) -eq 0 ] ; then
|
||||
echo "Missing cross compiler. Set up PATH according to the README"
|
||||
exit 1
|
||||
fi
|
||||
# Unset CROSS_COMPILE so that if there is any native compiling needed it doesn't
|
||||
# get cross compiled.
|
||||
unset CROSS_COMPILE
|
||||
|
||||
# Package installations for various sections.
|
||||
# This will build a minimal Gnome Kali system with the top 10 tools.
|
||||
# This is the section to edit if you would like to add more packages.
|
||||
# See http://www.kali.org/new/kali-linux-metapackages/ for meta packages you can
|
||||
# use. You can also install packages, using just the package name, but keep in
|
||||
# mind that not all packages work on ARM! If you specify one of those, the
|
||||
# script will throw an error, but will still continue on, and create an unusable
|
||||
# image, keep that in mind.
|
||||
|
||||
arm="abootimg cgpt fake-hwclock ntpdate vboot-utils vboot-kernel-utils u-boot-tools"
|
||||
base="kali-menu kali-defaults initramfs-tools usbutils"
|
||||
desktop="gdm3 gnome-brave-icon-theme kali-desktop-gnome kali-root-login xserver-xorg-video-fbdev"
|
||||
tools="passing-the-hash winexe aircrack-ng hydra john sqlmap wireshark libnfc-bin mfoc"
|
||||
services="openssh-server apache2"
|
||||
extras="wpasupplicant"
|
||||
|
||||
export packages="${arm} ${base} ${desktop} ${tools} ${services} ${extras}"
|
||||
export architecture="armhf"
|
||||
# If you have your own preferred mirrors, set them here.
|
||||
# You may want to leave security.kali.org alone, but if you trust your local
|
||||
# mirror, feel free to change this as well.
|
||||
# After generating the rootfs, we set the sources.list to the default settings.
|
||||
#mirror=http.kali.org
|
||||
#security=security.kali.org
|
||||
mirror=192.168.11.44
|
||||
security=192.168.11.44
|
||||
|
||||
# Set this to use an http proxy, like apt-cacher-ng, and uncomment further down
|
||||
# to unset it.
|
||||
#export http_proxy="http://localhost:3142/"
|
||||
|
||||
mkdir -p ${basedir}
|
||||
cd ${basedir}
|
||||
|
||||
# create the rootfs - not much to modify here, except maybe the hostname.
|
||||
debootstrap --foreign --arch $architecture kali kali-$architecture http://$mirror/kali
|
||||
|
||||
cp /usr/bin/qemu-arm-static kali-$architecture/usr/bin/
|
||||
|
||||
LANG=C chroot kali-$architecture /debootstrap/debootstrap --second-stage
|
||||
|
||||
# Create sources.list
|
||||
cat << EOF > kali-$architecture/etc/apt/sources.list
|
||||
deb http://$mirror/kali kali main contrib non-free
|
||||
deb http://$security/kali-security kali/updates main contrib non-free
|
||||
EOF
|
||||
|
||||
# Set hostname
|
||||
echo "kali" > kali-$architecture/etc/hostname
|
||||
|
||||
# So X doesn't complain, we add kali to hosts
|
||||
cat << EOF > kali-$architecture/etc/hosts
|
||||
127.0.0.1 kali localhost
|
||||
::1 localhost ip6-localhost ip6-loopback
|
||||
fe00::0 ip6-localnet
|
||||
ff00::0 ip6-mcastprefix
|
||||
ff02::1 ip6-allnodes
|
||||
ff02::2 ip6-allrouters
|
||||
EOF
|
||||
|
||||
cat << EOF > kali-$architecture/etc/network/interfaces
|
||||
auto lo
|
||||
iface lo inet loopback
|
||||
EOF
|
||||
|
||||
cat << EOF > kali-$architecture/etc/resolv.conf
|
||||
nameserver 8.8.8.8
|
||||
EOF
|
||||
|
||||
export MALLOC_CHECK_=0 # workaround for LP: #520465
|
||||
export LC_ALL=C
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
mount -t proc proc kali-$architecture/proc
|
||||
mount -o bind /dev/ kali-$architecture/dev/
|
||||
mount -o bind /dev/pts kali-$architecture/dev/pts
|
||||
|
||||
cat << EOF > kali-$architecture/debconf.set
|
||||
console-common console-data/keymap/policy select Select keymap from full list
|
||||
console-common console-data/keymap/full select en-latin1-nodeadkeys
|
||||
EOF
|
||||
|
||||
cat << EOF > kali-$architecture/third-stage
|
||||
#!/bin/bash
|
||||
dpkg-divert --add --local --divert /usr/sbin/invoke-rc.d.chroot --rename /usr/sbin/invoke-rc.d
|
||||
cp /bin/true /usr/sbin/invoke-rc.d
|
||||
echo -e "#!/bin/sh\nexit 101" > /usr/sbin/policy-rc.d
|
||||
chmod +x /usr/sbin/policy-rc.d
|
||||
|
||||
apt-get update
|
||||
apt-get install locales-all
|
||||
|
||||
debconf-set-selections /debconf.set
|
||||
rm -f /debconf.set
|
||||
apt-get update
|
||||
apt-get -y install git-core binutils ca-certificates initramfs-tools u-boot-tools
|
||||
apt-get -y install locales console-common less nano git
|
||||
echo "root:toor" | chpasswd
|
||||
sed -i -e 's/KERNEL\!=\"eth\*|/KERNEL\!=\"/' /lib/udev/rules.d/75-persistent-net-generator.rules
|
||||
rm -f /etc/udev/rules.d/70-persistent-net.rules
|
||||
apt-get --yes --force-yes install $packages
|
||||
|
||||
rm -f /usr/sbin/policy-rc.d
|
||||
rm -f /usr/sbin/invoke-rc.d
|
||||
dpkg-divert --remove --rename /usr/sbin/invoke-rc.d
|
||||
|
||||
rm -f /third-stage
|
||||
EOF
|
||||
|
||||
chmod +x kali-$architecture/third-stage
|
||||
LANG=C chroot kali-$architecture /third-stage
|
||||
|
||||
cat << EOF > kali-$architecture/cleanup
|
||||
#!/bin/bash
|
||||
rm -rf /root/.bash_history
|
||||
apt-get update
|
||||
apt-get clean
|
||||
rm -f /0
|
||||
rm -f /hs_err*
|
||||
rm -f cleanup
|
||||
rm -f /usr/bin/qemu*
|
||||
EOF
|
||||
|
||||
chmod +x kali-$architecture/cleanup
|
||||
LANG=C chroot kali-$architecture /cleanup
|
||||
|
||||
umount kali-$architecture/proc/sys/fs/binfmt_misc
|
||||
umount kali-$architecture/dev/pts
|
||||
umount kali-$architecture/dev/
|
||||
umount kali-$architecture/proc
|
||||
|
||||
echo "Creating image file for Acer Chromebook"
|
||||
dd if=/dev/zero of=${basedir}/kali-$1-acer.img bs=1M count=14000
|
||||
parted kali-$1-acer.img --script -- mklabel gpt
|
||||
cgpt create -z kali-$1-acer.img
|
||||
cgpt create kali-$1-acer.img
|
||||
|
||||
cgpt add -i 1 -t kernel -b 8192 -s 32768 -l kernel -S 1 -T 5 -P 10 kali-$1-acer.img
|
||||
cgpt add -i 2 -t data -b 40960 -s `expr $(cgpt show kali-$1-acer.img | grep 'Sec GPT table' | awk '{ print \$1 }') - 40960` -l Root kali-$1-acer.img
|
||||
|
||||
loopdevice=`losetup -f --show ${basedir}/kali-$1-acer.img`
|
||||
device=`kpartx -va $loopdevice| sed -E 's/.*(loop[0-9])p.*/\1/g' | head -1`
|
||||
device="/dev/mapper/${device}"
|
||||
bootp=${device}p1
|
||||
rootp=${device}p2
|
||||
|
||||
mkfs.ext4 $rootp
|
||||
|
||||
mkdir -p ${basedir}/root
|
||||
mount $rootp ${basedir}/root
|
||||
|
||||
echo "Rsyncing rootfs into image file"
|
||||
rsync -HPavz -q ${basedir}/kali-$architecture/ ${basedir}/root/
|
||||
|
||||
cat << EOF > ${basedir}/root/etc/apt/sources.list
|
||||
deb http://http.kali.org/kali kali main non-free contrib
|
||||
deb http://security.kali.org/kali-security kali/updates main contrib non-free
|
||||
|
||||
deb-src http://http.kali.org/kali kali main non-free contrib
|
||||
deb-src http://security.kali.org/kali-security kali/updates main contrib non-free
|
||||
EOF
|
||||
|
||||
# Uncomment this if you use apt-cacher-ng otherwise git clones will fail.
|
||||
#unset http_proxy
|
||||
|
||||
# Kernel section. If you want to use a custom kernel, or configuration, replace
|
||||
# them in this section.
|
||||
git clone --depth 1 file:///root/sandbox/mirror/chromebook.git -b chromeos-3.10 ${basedir}/kernel
|
||||
cd ${basedir}/kernel
|
||||
# Download the xhci firmware and build it in to the kernel so that USB booting
|
||||
# will work in case someone generates their own USB booting image.
|
||||
#wget http://gsdview.appspot.com/chromeos-localmirror/distfiles/xhci-firmware-2015.02.03.00.00.tbz2
|
||||
wget http://gsdview.appspot.com/chromeos-localmirror/distfiles/xhci-firmware-2015.04.16.00.00.tbz2
|
||||
tar --strip-components=5 -xf xhci-firmware-2015.04.16.00.00.tbz2 -C firmware
|
||||
cp ${basedir}/../kernel-configs/chromebook-3.10.config .config
|
||||
export ARCH=arm
|
||||
# Edit the CROSS_COMPILE variable as needed.
|
||||
export CROSS_COMPILE=arm-linux-gnueabihf-
|
||||
patch -p1 --no-backup-if-mismatch < ${basedir}/../patches/mac80211-3.8.patch
|
||||
patch -p1 --no-backup-if-mismatch < ${basedir}/../patches/mwifiex-do-not-create-AP-and-P2P-interfaces-upon-driver-loading-3.8.patch
|
||||
make WIFIVERSION="-3.8" -j $(grep -c processor /proc/cpuinfo)
|
||||
make WIFIVERSION="-3.8" dtbs
|
||||
make WIFIVERSION="-3.8" modules_install INSTALL_MOD_PATH=${basedir}/root
|
||||
cat << __EOF__ > ${basedir}/kernel/arch/arm/boot/kernel-nyan.its
|
||||
/dts-v1/;
|
||||
|
||||
/ {
|
||||
description = "Chrome OS kernel image with one or more FDT blobs";
|
||||
#address-cells = <1>;
|
||||
images {
|
||||
kernel@1{
|
||||
description = "kernel";
|
||||
data = /incbin/("zImage");
|
||||
type = "kernel_noload";
|
||||
arch = "arm";
|
||||
os = "linux";
|
||||
compression = "none";
|
||||
load = <0>;
|
||||
entry = <0>;
|
||||
};
|
||||
fdt@1{
|
||||
description = "tegra124-nyan-big.dtb";
|
||||
data = /incbin/("dts/tegra124-nyan-big.dtb");
|
||||
type = "flat_dt";
|
||||
arch = "arm";
|
||||
compression = "none";
|
||||
hash@1{
|
||||
algo = "sha1";
|
||||
};
|
||||
};
|
||||
fdt@2{
|
||||
description = "tegra124-nyan-big-rev0_2.dtb";
|
||||
data = /incbin/("dts/tegra124-nyan-big-rev0_2.dtb");
|
||||
type = "flat_dt";
|
||||
arch = "arm";
|
||||
compression = "none";
|
||||
hash@1{
|
||||
algo = "sha1";
|
||||
};
|
||||
};
|
||||
fdt@3{
|
||||
description = "tegra124-nyan-blaze.dtb";
|
||||
data = /incbin/("dts/tegra124-nyan-blaze.dtb");
|
||||
type = "flat_dt";
|
||||
arch = "arm";
|
||||
compression = "none";
|
||||
hash@1{
|
||||
algo = "sha1";
|
||||
};
|
||||
};
|
||||
fdt@4{
|
||||
description = "tegra124-nyan-kitty.dtb";
|
||||
data = /incbin/("dts/tegra124-nyan-kitty.dtb");
|
||||
type = "flat_dt";
|
||||
arch = "arm";
|
||||
compression = "none";
|
||||
hash@1{
|
||||
algo = "sha1";
|
||||
};
|
||||
};
|
||||
fdt@5{
|
||||
description = "tegra124-nyan-rev0.dtb";
|
||||
data = /incbin/("dts/tegra124-nyan-rev0.dtb");
|
||||
type = "flat_dt";
|
||||
arch = "arm";
|
||||
compression = "none";
|
||||
hash@1{
|
||||
algo = "sha1";
|
||||
};
|
||||
};
|
||||
fdt@6{
|
||||
description = "tegra124-nyan-rev1.dtb";
|
||||
data = /incbin/("dts/tegra124-nyan-rev1.dtb");
|
||||
type = "flat_dt";
|
||||
arch = "arm";
|
||||
compression = "none";
|
||||
hash@1{
|
||||
algo = "sha1";
|
||||
};
|
||||
};
|
||||
};
|
||||
configurations {
|
||||
default = "conf@1";
|
||||
conf@1{
|
||||
kernel = "kernel@1";
|
||||
fdt = "fdt@1";
|
||||
};
|
||||
conf@2{
|
||||
kernel = "kernel@1";
|
||||
fdt = "fdt@2";
|
||||
};
|
||||
conf@3{
|
||||
kernel = "kernel@1";
|
||||
fdt = "fdt@3";
|
||||
};
|
||||
conf@4{
|
||||
kernel = "kernel@1";
|
||||
fdt = "fdt@4";
|
||||
};
|
||||
conf@5{
|
||||
kernel = "kernel@1";
|
||||
fdt = "fdt@5";
|
||||
};
|
||||
conf@6{
|
||||
kernel = "kernel@1";
|
||||
fdt = "fdt@6";
|
||||
};
|
||||
};
|
||||
};
|
||||
__EOF__
|
||||
cd ${basedir}/kernel/arch/arm/boot
|
||||
mkimage -f kernel-nyan.its nyan-big-kernel
|
||||
|
||||
# SD Card
|
||||
echo "noinitrd console=tty1 quiet root=/dev/mmcblk1p2 rootwait rw lsm.module_locking=0 net.ifnames=0 rootfstype=ext4" > cmdline
|
||||
# USB
|
||||
#echo "noinitrd console=tty1 quiet root=/dev/sda2 rootwait rw lsm.module_locking=0 net.ifnames=0 rootfstype=ext4" > cmdline
|
||||
|
||||
vbutil_kernel --arch arm --pack ${basedir}/kernel.bin --keyblock /usr/share/vboot/devkeys/kernel.keyblock --signprivate /usr/share/vboot/devkeys/kernel_data_key.vbprivk --version 1 --config cmdline --vmlinuz nyan-big-kernel
|
||||
|
||||
cd ${basedir}
|
||||
|
||||
# Lid switch
|
||||
cat << EOF > ${basedir}/root/etc/udev/rules.d/99-tegra-lid-switch.rules
|
||||
ACTION=="remove", GOTO="tegra_lid_switch_end"
|
||||
|
||||
SUBSYSTEM=="input", KERNEL=="event*", SUBSYSTEMS=="platform",
|
||||
KERNELS=="gpio-keys.4", TAG+="power-switch"
|
||||
|
||||
LABEL="tegra_lid_switch_end"
|
||||
EOF
|
||||
|
||||
#nvidia device nodes
|
||||
cat << EOF > ${basedir}/root/lib/udev/rules.d/51-nvrm.rules
|
||||
KERNEL=="knvmap", GROUP="video", MODE="0660"
|
||||
KERNEL=="nvhdcp1", GROUP="video", MODE="0660"
|
||||
KERNEL=="nvhost-as-gpu", GROUP="video", MODE="0660"
|
||||
KERNEL=="nvhost-ctrl", GROUP="video", MODE="0660"
|
||||
KERNEL=="nvhost-ctrl-gpu", GROUP="video", MODE="0660"
|
||||
KERNEL=="nvhost-dbg-gpu", GROUP="video", MODE="0660"
|
||||
KERNEL=="nvhost-gpu", GROUP="video", MODE="0660"
|
||||
KERNEL=="nvhost-msenc", GROUP="video", MODE=0660"
|
||||
KERNEL=="nvhost-prof-gpu", GROUP="video", MODE=0660"
|
||||
KERNEL=="nvhost-tsec", GROUP="video", MODE="0660"
|
||||
KERNEL=="nvhost-vic", GROUP="video", MODE="0660"
|
||||
KERNEL=="nvmap", GROUP="video", MODE="0660"
|
||||
KERNEL=="tegra_dc_0", GROUP="video", MODE="0660"
|
||||
KERNEL=="tegra_dc_1", GROUP="video", MODE="0660"
|
||||
KERNEL=="tegra_dc_ctrl", GROUP="video", MODE="0660"
|
||||
EOF
|
||||
|
||||
cat << EOF > ${basedir}/root/root/nvidia-l4t.sh
|
||||
#!/bin/sh
|
||||
|
||||
L4TURL=http://developer.download.nvidia.com/embedded/L4T/r21_Release_v3.0/Tegra124_Linux_R21.3.0_armhf.tbz2
|
||||
L4TFILE=Tegra124_Linux_R21.3.0_armhf.tbz2
|
||||
|
||||
# Remove it if it pre-exists...
|
||||
rm -rf /tmp/l4t
|
||||
mkdir -p /tmp/l4t
|
||||
cd /tmp/l4t
|
||||
wget \${L4TURL}
|
||||
tar -xf \${L4TFILE}
|
||||
cd Linux_for_Tegra/rootfs
|
||||
tar -xf ../nv_tegra/nvidia_drivers.tbz2
|
||||
tar -xf ../nv_tegra/config.tbz2
|
||||
tar -xf ../nv_tegra/nv_sample_apps/nvgstapps.tbz2
|
||||
|
||||
cd usr
|
||||
rm -rf sbin
|
||||
cd bin
|
||||
rm nvgst*-1.0
|
||||
rm nvidia-bug-report-tegra.sh
|
||||
cd ..
|
||||
cd lib/arm-linux-gnueabihf
|
||||
rm -rf gstreamer-1.0
|
||||
rm libgstnvegl-1.0.so.0
|
||||
cd ../../..
|
||||
|
||||
cd lib/firmware
|
||||
cp -a * /lib/firmware
|
||||
|
||||
cd ../..
|
||||
cd usr
|
||||
cp -a * /usr/
|
||||
|
||||
cd /usr/lib/arm-linux-gnueabihf/tegra
|
||||
ln -sf "libcuda.so.1.1" "libcuda.so"
|
||||
cd ..
|
||||
ln -sf "tegra/libcuda.so" "libcuda.so"
|
||||
ln -sf "tegra/libGL.so.1" "libGL.so"
|
||||
|
||||
cd /tmp/l4t/Linux_for_Tegra/rootfs/etc/udev/rules.d
|
||||
rm 99-nv-wifibt.rules
|
||||
rm 91-xorg-conf-tegra.rules
|
||||
cp * /etc/udev/rules.d/
|
||||
cd ../..
|
||||
cp enctune.conf /etc/
|
||||
cd pulse
|
||||
cp -a * /etc/pulse/
|
||||
cd ..
|
||||
cd X11
|
||||
cp xorg.conf /etc/X11/xorg.conf.d/20-nvidia.conf
|
||||
mv /etc/X11/xorg.conf.d/20-armsoc.conf /root/
|
||||
mv /etc/X11/xorg.conf /root/
|
||||
cd ..
|
||||
echo "/usr/lib/arm-linux-gnueabihf/tegra" >> ld.so.conf.d/nvidia-tegra.conf
|
||||
echo "/usr/lib/arm-linux-gnueabihf/tegra-egl" >> ld.so.conf.d/nvidia-tegra.conf
|
||||
cp ld.so.conf.d/nvidia-tegra.conf /etc/ld.so.conf.d/
|
||||
ldconfig
|
||||
|
||||
cd /etc/pulse
|
||||
mv default.pa default.pa.dist
|
||||
ln -sf default.pa.orig default.pa
|
||||
|
||||
echo "Done with everything! Please reboot!"
|
||||
EOF
|
||||
chmod +x ${basedir}/root/root/nvidia-l4t.sh
|
||||
|
||||
# Touchpad configuration
|
||||
mkdir -p ${basedir}/root/etc/X11/xorg.conf.d
|
||||
cat << EOF > ${basedir}/root/etc/X11/xorg.conf.d/10-synaptics-chromebook.conf
|
||||
Section "InputClass"
|
||||
Identifier "touchpad"
|
||||
MatchIsTouchpad "on"
|
||||
Driver "synaptics"
|
||||
Option "TapButton1" "1"
|
||||
Option "TapButton2" "3"
|
||||
Option "TapButton3" "2"
|
||||
Option "FingerLow" "15"
|
||||
Option "FingerHigh" "20"
|
||||
Option "FingerPress" "256"
|
||||
EndSection
|
||||
EOF
|
||||
# Turn off DPMS, this is supposed to help with fbdev/armsoc blanking.
|
||||
# Doesn't really seem to affect fbdev, but marked improvement with armsoc.
|
||||
cat << EOF > ${basedir}/root/etc/X11/xorg.conf
|
||||
Section "ServerFlags"
|
||||
Option "NoTrapSignals" "true"
|
||||
Option "DontZap" "false"
|
||||
|
||||
# Disable DPMS timeouts.
|
||||
Option "StandbyTime" "0"
|
||||
Option "SuspendTime" "0"
|
||||
Option "OffTime" "0"
|
||||
|
||||
# Disable screen saver timeout.
|
||||
Option "BlankTime" "0"
|
||||
EndSection
|
||||
|
||||
Section "Monitor"
|
||||
Identifier "DefaultMonitor"
|
||||
EndSection
|
||||
|
||||
Section "Device"
|
||||
Identifier "DefaultDevice"
|
||||
Option "monitor-LVDS1" "DefaultMonitor"
|
||||
EndSection
|
||||
|
||||
Section "Screen"
|
||||
Identifier "DefaultScreen"
|
||||
Monitor "DefaultMonitor"
|
||||
Device "DefaultDevice"
|
||||
EndSection
|
||||
|
||||
Section "ServerLayout"
|
||||
Identifier "DefaultLayout"
|
||||
Screen "DefaultScreen"
|
||||
EndSection
|
||||
EOF
|
||||
|
||||
# At the moment we use fbdev, but in the future, we will switch to the armsoc
|
||||
# driver provided by ChromiumOS.
|
||||
cat << EOF > ${basedir}/root/etc/X11/xorg.conf.d/20-armsoc.conf
|
||||
Section "Device"
|
||||
Identifier "Mali FBDEV"
|
||||
# Driver "armsoc"
|
||||
Driver "fbdev"
|
||||
Option "fbdev" "/dev/fb0"
|
||||
Option "Fimg2DExa" "false"
|
||||
Option "DRI2" "true"
|
||||
Option "DRI2_PAGE_FLIP" "false"
|
||||
Option "DRI2_WAIT_VSYNC" "true"
|
||||
# Option "Fimg2DExaSolid" "false"
|
||||
# Option "Fimg2DExaCopy" "false"
|
||||
# Option "Fimg2DExaComposite" "false"
|
||||
Option "SWcursorLCD" "false"
|
||||
EndSection
|
||||
|
||||
Section "Screen"
|
||||
Identifier "DefaultScreen"
|
||||
Device "Mali FBDEV"
|
||||
DefaultDepth 24
|
||||
EndSection
|
||||
EOF
|
||||
|
||||
rm -rf ${basedir}/root/lib/firmware
|
||||
cd ${basedir}/root/lib
|
||||
git clone file:///root/sandbox/mirror/linux-firmware.git firmware
|
||||
rm -rf ${basedir}/root/lib/firmware/.git
|
||||
cd ${basedir}
|
||||
|
||||
# lp0 resume firmware...
|
||||
git clone https://chromium.googlesource.com/chromiumos/third_party/coreboot
|
||||
cd ${basedir}/coreboot
|
||||
git checkout bf6110a05506d888b3e4452896e19e1f71f49afe
|
||||
make -C src/soc/nvidia/tegra124/lp0 GCC_PREFIX=arm-linux-gnueabihf-
|
||||
mkdir -p ${basedir}/root/lib/firmware/tegra12x/
|
||||
cp src/soc/nvidia/tegra124/lp0/tegra_lp0_resume.fw ${basedir}/root/lib/firmware/tegra12x/
|
||||
cd ${basedir}
|
||||
|
||||
# Touchpad config/firmware from ChromeOS.
|
||||
cat << EOF > ${basedir}/root/lib/firmware/maxtouch-ts.cfg
|
||||
OBP_RAW V1
|
||||
a2 00 20 ab 20 34 21
|
||||
969531
|
||||
c652a4
|
||||
0044 0000 0049 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
0026 0000 0040 02 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
0047 0000 00A8 00 3C 1E B0 00 00 00 00 00 00 03 01 00 C8 AF 00 00 00 00 00 FF 01 1E B0 00 00 00 00 00 00 03 01 00 FF FF 00 00 00 00 00 FF 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
0007 0000 0004 1E FF DC 40
|
||||
0008 0000 000A 74 00 14 14 00 00 FF 01 1E 00
|
||||
0009 0000 002F 8F 00 00 20 34 00 5F 28 02 03 19 01 01 40 0A 14 14 05 FF 02 55 05 08 09 07 05 8E 1D 88 11 19 0F 31 32 00 00 45 E6 28 00 00 00 00 00 00 00 00
|
||||
0009 0001 002F 00 00 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
000F 0000 000B 00 00 00 00 00 00 00 00 00 00 00
|
||||
0012 0000 0002 40 00
|
||||
0013 0000 0006 00 00 00 00 00 00
|
||||
0018 0000 0013 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
0018 0001 0013 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
0019 0000 0015 03 00 D0 67 30 58 00 00 00 00 00 00 00 00 C8 A0 0F 00 00 00 00
|
||||
001B 0000 0007 00 00 00 00 00 00 00
|
||||
001B 0001 0007 00 00 00 00 00 00 00
|
||||
0028 0000 0005 00 00 00 00 00
|
||||
0028 0001 0005 00 00 00 00 00
|
||||
002A 0000 000D 01 28 32 2C 50 00 00 00 00 00 46 03 28
|
||||
002A 0001 000D 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
002B 0000 000C 8C 00 90 00 00 01 14 00 00 00 00 6C
|
||||
002E 0000 000B 29 00 10 10 00 00 01 00 00 00 10
|
||||
002F 0000 001C 00 00 08 10 00 00 00 00 00 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
002F 0001 001C 00 00 00 00 00 00 00 00 00 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
0037 0000 0007 00 00 00 00 00 00 00
|
||||
0037 0001 0007 00 00 00 00 00 00 00
|
||||
0038 0000 0033 01 00 00 46 13 13 13 13 12 12 12 12 12 12 12 11 11 11 11 11 11 11 10 11 10 10 10 10 10 10 0F 0F 0F 0F 0F 0F 00 00 01 02 14 04 00 00 00 00 00 00 00 00 00
|
||||
0039 0000 0003 E2 00 00
|
||||
0039 0001 0003 00 00 00
|
||||
003D 0000 0005 03 00 00 C8 AF
|
||||
003D 0001 0005 03 00 00 FF FF
|
||||
003D 0002 0005 00 00 00 00 00
|
||||
003D 0003 0005 00 00 00 00 00
|
||||
003E 0000 004A 7D 0A 00 12 08 00 20 00 2D 00 05 2D 1E 0F 05 00 0A 05 05 5A 1E 1E 14 0F 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
003F 0000 0019 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
003F 0001 0019 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
0041 0000 0011 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
0042 0000 0003 00 00 00
|
||||
0046 0000 000A 00 00 00 00 00 00 00 00 00 00
|
||||
0046 0001 000A 00 00 00 00 00 00 00 00 00 00
|
||||
0046 0002 000A 00 00 00 00 00 00 00 00 00 00
|
||||
0046 0003 000A 00 00 00 00 00 00 00 00 00 00
|
||||
0046 0004 000A 00 00 00 00 00 00 00 00 00 00
|
||||
0046 0005 000A 00 00 00 00 00 00 00 00 00 00
|
||||
0046 0006 000A 00 00 00 00 00 00 00 00 00 00
|
||||
0046 0007 000A 00 00 00 00 00 00 00 00 00 00
|
||||
0046 0008 000A 00 00 00 00 00 00 00 00 00 00
|
||||
0046 0009 000A 00 00 00 00 00 00 00 00 00 00
|
||||
0046 000A 000A 00 00 00 00 00 00 00 00 00 00
|
||||
0046 000B 000A 00 00 00 00 00 00 00 00 00 00
|
||||
0049 0000 0006 00 00 00 00 00 00
|
||||
0049 0001 0006 00 00 00 00 00 00
|
||||
004D 0000 0004 00 00 00 00
|
||||
004F 0000 0003 00 00 00
|
||||
EOF
|
||||
|
||||
# Unmount partitions
|
||||
umount $rootp
|
||||
|
||||
dd if=${basedir}/kernel.bin of=$bootp
|
||||
|
||||
kpartx -dv $loopdevice
|
||||
losetup -d $loopdevice
|
||||
|
||||
# Clean up all the temporary build stuff and remove the directories.
|
||||
# Comment this out to keep things around if you want to see what may have gone
|
||||
# wrong.
|
||||
echo "Removing temporary build files"
|
||||
rm -rf ${basedir}/coreboot ${basedir}/kernel ${basedir}/kernel.bin ${basedir}/root ${basedir}/kali-$architecture ${basedir}/patches
|
||||
|
||||
# If you're building an image for yourself, comment all of this out, as you
|
||||
# don't need the sha1sum or to compress the image, since you will be testing it
|
||||
# soon.
|
||||
echo "Generating sha1sum for kali-$1-acer.img"
|
||||
sha1sum kali-$1-acer.img > ${basedir}/kali-$1-acer.img.sha1sum
|
||||
# Don't pixz on 32bit, there isn't enough memory to compress the images.
|
||||
MACHINE_TYPE=`uname -m`
|
||||
if [ ${MACHINE_TYPE} == 'x86_64' ]; then
|
||||
echo "Compressing kali-$1-acer.img"
|
||||
pixz ${basedir}/kali-$1-acer.img ${basedir}/kali-$1-acer.img.xz
|
||||
rm ${basedir}/kali-$1-acer.img
|
||||
echo "Generating sha1sum for kali-$1-acer.img.xz"
|
||||
sha1sum kali-$1-acer.img.xz > ${basedir}/kali-$1-acer.img.xz.sha1sum
|
||||
fi
|
||||
Reference in New Issue
Block a user