Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- set -e
- # fw_type will always be developer for Mario.
- # Alex and ZGB need the developer BIOS installed though.
- fw_type="`crossystem mainfw_type`"
- if [ ! "$fw_type" = "developer" ]
- then
- echo -e "\nYou're Chromebook is not running a developer BIOS!"
- echo -e "You need to run:"
- echo -e ""
- echo -e "sudo chromeos-firmwareupdate --mode=todev"
- echo -e ""
- echo -e "and then re-run this script."
- exit
- fi
- powerd_status="`initctl status powerd`"
- if [ ! "$powerd_status" = "powerd stop/waiting" ]
- then
- echo -e "Stopping powerd to keep display from timing out..."
- initctl stop powerd
- fi
- setterm -blank 0
- if [ "$3" != "" ]; then
- target_disk=$3
- echo "Got ${target_disk} as target drive"
- echo ""
- echo "WARNING! All data on this device will be wiped out! Continue at your own risk!"
- echo ""
- read -p "Press [Enter] to install ChrUbuntu on ${target_disk} or CTRL+C to quit"
- ext_size="`blockdev --getsz ${target_disk}`"
- aroot_size=$((ext_size - 65600 - 33))
- parted --script ${target_disk} "mktable gpt"
- cgpt create ${target_disk}
- cgpt add -i 6 -b 64 -s 32768 -S 1 -P 5 -l KERN-A -t "kernel" ${target_disk}
- cgpt add -i 7 -b 65600 -s $aroot_size -l ROOT-A -t "rootfs" ${target_disk}
- sync
- blockdev --rereadpt ${target_disk}
- partprobe ${target_disk}
- crossystem dev_boot_usb=1
- else
- target_disk="`rootdev -d -s`"
- # Do partitioning (if we haven't already)
- ckern_size="`cgpt show -i 6 -n -s -q ${target_disk}`"
- croot_size="`cgpt show -i 7 -n -s -q ${target_disk}`"
- state_size="`cgpt show -i 1 -n -s -q ${target_disk}`"
- max_ubuntu_size=$(($state_size/1024/1024/2))
- rec_ubuntu_size=$(($max_ubuntu_size - 1))
- # If KERN-C and ROOT-C are one, we partition, otherwise assume they're what they need to be...
- if [ "$ckern_size" = "1" -o "$croot_size" = "1" ]
- then
- while :
- do
- read -p "Enter the size in gigabytes you want to reserve for Ubuntu. Acceptable range is 5 to $max_ubuntu_size but $rec_ubuntu_size is the recommended maximum: " ubuntu_size
- if [ ! $ubuntu_size -ne 0 2>/dev/null ]
- then
- echo -e "\n\nNumbers only please...\n\n"
- continue
- fi
- if [ $ubuntu_size -lt 5 -o $ubuntu_size -gt $max_ubuntu_size ]
- then
- echo -e "\n\nThat number is out of range. Enter a number 5 through $max_ubuntu_size\n\n"
- continue
- fi
- break
- done
- # We've got our size in GB for ROOT-C so do the math...
- #calculate sector size for rootc
- rootc_size=$(($ubuntu_size*1024*1024*2))
- #kernc is always 16mb
- kernc_size=32768
- #new stateful size with rootc and kernc subtracted from original
- stateful_size=$(($state_size - $rootc_size - $kernc_size))
- #start stateful at the same spot it currently starts at
- stateful_start="`cgpt show -i 1 -n -b -q ${target_disk}`"
- #start kernc at stateful start plus stateful size
- kernc_start=$(($stateful_start + $stateful_size))
- #start rootc at kernc start plus kernc size
- rootc_start=$(($kernc_start + $kernc_size))
- #Do the real work
- echo -e "\n\nModifying partition table to make room for Ubuntu."
- echo -e "Your Chromebook will reboot, wipe your data and then"
- echo -e "you should re-run this script..."
- umount -l -f /mnt/stateful_partition
- # stateful first
- cgpt add -i 1 -b $stateful_start -s $stateful_size -l STATE ${target_disk}
- # now kernc
- cgpt add -i 6 -b $kernc_start -s $kernc_size -l KERN-C ${target_disk}
- # finally rootc
- cgpt add -i 7 -b $rootc_start -s $rootc_size -l ROOT-C ${target_disk}
- reboot
- exit
- fi
- fi
- # hwid lets us know if this is a Mario (Cr-48), Alex (Samsung Series 5), ZGB (Acer), etc
- hwid="`crossystem hwid`"
- chromebook_arch="`uname -m`"
- ubuntu_metapackage=${1:-default}
- latest_ubuntu=`wget --quiet -O - http://changelogs.ubuntu.com/meta-release | grep "^Version: " | tail -1 | sed -r 's/^Version: ([^ ]+)( LTS)?$/\1/'`
- ubuntu_version=${2:-$latest_ubuntu}
- if [ "$ubuntu_version" = "lts" ]
- then
- ubuntu_version=`wget --quiet -O - http://changelogs.ubuntu.com/meta-release | grep "^Version:" | grep "LTS" | tail -1 | sed -r 's/^Version: ([^ ]+)( LTS)?$/\1/'`
- elif [ "$ubuntu_version" = "latest" ]
- then
- ubuntu_version=$latest_ubuntu
- fi
- if [ "$chromebook_arch" = "x86_64" ]
- then
- ubuntu_arch="amd64"
- if [ "$ubuntu_metapackage" = "default" ]
- then
- ubuntu_metapackage="ubuntu-desktop"
- fi
- elif [ "$chromebook_arch" = "i686" ]
- then
- ubuntu_arch="i386"
- if [ "$ubuntu_metapackage" = "default" ]
- then
- ubuntu_metapackage="ubuntu-desktop"
- fi
- elif [ "$chromebook_arch" = "armv7l" ]
- then
- ubuntu_arch="armhf"
- if [ "$ubuntu_metapackage" = "default" ]
- then
- ubuntu_metapackage="xubuntu-desktop"
- fi
- else
- echo -e "Error: This script doesn't know how to install ChrUbuntu on $chromebook_arch"
- exit
- fi
- echo -e "\nChrome device model is: $hwid\n"
- echo -e "Installing Ubuntu ${ubuntu_version} with metapackage ${ubuntu_metapackage}\n"
- echo -e "Kernel Arch is: $chromebook_arch Installing Ubuntu Arch: $ubuntu_arch\n"
- read -p "Press [Enter] to continue..."
- if [ ! -d /mnt/stateful_partition/ubuntu ]
- then
- mkdir /mnt/stateful_partition/ubuntu
- fi
- cd /mnt/stateful_partition/ubuntu
- if [[ "${target_disk}" =~ "mmcblk" ]]
- then
- target_rootfs="${target_disk}p7"
- target_kern="${target_disk}p6"
- else
- target_rootfs="${target_disk}7"
- target_kern="${target_disk}6"
- fi
- echo "Target Kernel Partition: $target_kern Target Root FS: ${target_rootfs}"
- if mount|grep ${target_rootfs}
- then
- echo "Refusing to continue since ${target_rootfs} is formatted and mounted. Try rebooting"
- exit
- fi
- mkfs.ext4 ${target_rootfs}
- if [ ! -d /tmp/urfs ]
- then
- mkdir /tmp/urfs
- fi
- mount -t ext4 ${target_rootfs} /tmp/urfs
- tar_file="http://cdimage.ubuntu.com/ubuntu-core/vivid/daily-preinstalled/current/vivid-preinstalled-core-armhf.tar.gz"
- if [ $ubuntu_version = "dev" ]
- then
- ubuntu_animal=`wget --quiet -O - http://changelogs.ubuntu.com/meta-release-development | grep "^Dist: " | tail -1 | sed -r 's/^Dist: (.*)$/\1/'`
- tar_file="http://cdimage.ubuntu.com/ubuntu-core/daily/current/$ubuntu_animal-core-$ubuntu_arch.tar.gz"
- fi
- wget -O - $tar_file | tar xzvvp -C /tmp/urfs/
- mount -o bind /proc /tmp/urfs/proc
- mount -o bind /dev /tmp/urfs/dev
- mount -o bind /dev/pts /tmp/urfs/dev/pts
- mount -o bind /sys /tmp/urfs/sys
- if [ -f /usr/bin/old_bins/cgpt ]
- then
- cp /usr/bin/old_bins/cgpt /tmp/urfs/usr/bin/
- else
- cp /usr/bin/cgpt /tmp/urfs/usr/bin/
- fi
- chmod a+rx /tmp/urfs/usr/bin/cgpt
- if [ ! -d /tmp/urfs/run/resolvconf/ ]
- then
- mkdir /tmp/urfs/run/resolvconf/
- fi
- cp /etc/resolv.conf /tmp/urfs/run/resolvconf/
- ln -s -f /run/resolvconf/resolv.conf /tmp/urfs/etc/resolv.conf
- echo chrubuntu > /tmp/urfs/etc/hostname
- #echo -e "127.0.0.1 localhost
- echo -e "\n127.0.1.1 chrubuntu" >> /tmp/urfs/etc/hosts
- # The following lines are desirable for IPv6 capable hosts
- #::1 localhost ip6-localhost ip6-loopback
- #fe00::0 ip6-localnet
- #ff00::0 ip6-mcastprefix
- #ff02::1 ip6-allnodes
- #ff02::2 ip6-allrouters" > /tmp/urfs/etc/hosts
- cr_install="wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
- add-apt-repository \"deb http://dl.google.com/linux/chrome/deb/ stable main\"
- apt-get update
- apt-get -y install google-chrome-stable"
- if [ $ubuntu_arch = 'armhf' ]
- then
- cr_install='apt-get -y install chromium-browser'
- fi
- add_apt_repository_package='software-properties-common'
- ubuntu_major_version=${ubuntu_version:0:2}
- ubuntu_minor_version=${ubuntu_version:3:2}
- if [ $ubuntu_major_version -le 12 ] && [ $ubuntu_minor_version -lt 10 ]
- then
- add_apt_repository_package='python-software-properties'
- fi
- echo -e "apt-get -y update
- apt-get -y dist-upgrade
- apt-get -y install ubuntu-minimal
- apt-get -y install wget
- apt-get -y install $add_apt_repository_package
- add-apt-repository main
- add-apt-repository universe
- add-apt-repository restricted
- add-apt-repository multiverse
- apt-get update
- apt-get -y install $ubuntu_metapackage
- $cr_install
- if [ -f /usr/lib/lightdm/lightdm-set-defaults ]
- then
- /usr/lib/lightdm/lightdm-set-defaults --autologin youngboy
- fi
- useradd -m youngboy -s /bin/bash
- echo youngboy | echo youngboy:blankie | chpasswd
- adduser youngboy adm
- adduser youngboy sudo
- update-alternatives --set x-www-browser /usr/bin/chromium-browser
- locale-gen en_US en_US.UTF-8
- echo -e 'LANG=en_US.UTF-8\nLC_ALL=en_US.UTF-8' > /etc/default/locale
- LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 dpkg-reconfigure locales" > /tmp/urfs/install-ubuntu.sh
- chmod a+x /tmp/urfs/install-ubuntu.sh
- chroot /tmp/urfs /bin/bash -c /install-ubuntu.sh
- rm /tmp/urfs/install-ubuntu.sh
- KERN_VER=`uname -r`
- mkdir -p /tmp/urfs/lib/modules/$KERN_VER/
- cp -ar /lib/modules/$KERN_VER/* /tmp/urfs/lib/modules/$KERN_VER/
- if [ ! -d /tmp/urfs/lib/firmware/ ]
- then
- mkdir /tmp/urfs/lib/firmware/
- fi
- cp -ar /lib/firmware/* /tmp/urfs/lib/firmware/
- # copy adobe flash player plugin
- cp /opt/google/chrome/pepper/libpepflashplayer.so /tmp/urfs/usr/lib/chromium-browser
- # tell chromium-browser where to find flash plugin
- echo -e 'CHROMIUM_FLAGS="${CHROMIUM_FLAGS} --ppapi-flash-path=/usr/lib/chromium-browser/libpepflashplayer.so"' >> /tmp/urfs/etc/chromium-browser/default
- # flash plugin requires a new version of libstdc++6 from test repository
- cat > /tmp/urfs/install-flash.sh <<EOF
- add-apt-repository -y ppa:ubuntu-toolchain-r/test
- apt-get update
- apt-get install -y libstdc++6
- EOF
- chmod a+x /tmp/urfs/install-flash.sh
- chroot /tmp/urfs /bin/bash -c /install-flash.sh
- rm /tmp/urfs/install-flash.sh
- # BIG specific files here
- cp /etc/X11/xorg.conf.d/tegra.conf /tmp/urfs/usr/share/X11/xorg.conf.d/
- l4tdir=`mktemp -d`
- l4t=Tegra124_Linux_R19.3.0_armhf.tbz2
- wget -P ${l4tdir} https://developer.nvidia.com/sites/default/files/akamai/mobile/files/L4T/${l4t}
- cd ${l4tdir}
- tar xvpf ${l4t}
- cd Linux_for_Tegra/rootfs/
- tar xvpf ../nv_tegra/nvidia_drivers.tbz2
- tar cf - usr/lib | ( cd /tmp/urfs ; tar xvf -)
- # cuda symlinks
- ln -s libcuda.so.1 /tmp/urfs/usr/lib/arm-linux-gnueabihf/libcuda.so
- ln -s tegra/libcuda.so.1 /tmp/urfs/usr/lib/arm-linux-gnueabihf/libcuda.so.1
- ln -s tegra/libcuda.so.1.1 /tmp/urfs/usr/lib/arm-linux-gnueabihf/libcuda.so.1.1
- echo "/usr/lib/arm-linux-gnueabihf/tegra" > /tmp/urfs/etc/ld.so.conf.d/nvidia-tegra.conf
- echo "/usr/lib/arm-linux-gnueabihf/tegra-egl" > /tmp/urfs/usr/lib/arm-linux-gnueabihf/tegra-egl/ld.so.conf
- echo "/usr/lib/arm-linux-gnueabihf/tegra" > /tmp/urfs/usr/lib/arm-linux-gnueabihf/tegra/ld.so.conf
- cat >/tmp/urfs/etc/udev/rules.d/99-tegra-lid-switch.rules <<EOF
- 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 node permissions
- cat > /tmp/urfs/lib/udev/rules.d/51-nvrm.rules <<EOF
- 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
- # alsa mixer settings to enable internal speakers
- cat > /tmp/urfs/var/lib/alsa/asound.state <<EOF
- state.HDATegra {
- control.1 {
- iface CARD
- name 'HDMI/DP,pcm=3 Jack'
- value false
- comment {
- access read
- type BOOLEAN
- count 1
- }
- }
- control.2 {
- iface MIXER
- name 'IEC958 Playback Con Mask'
- value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
- comment {
- access read
- type IEC958
- count 1
- }
- }
- control.3 {
- iface MIXER
- name 'IEC958 Playback Pro Mask'
- value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
- comment {
- access read
- type IEC958
- count 1
- }
- }
- control.4 {
- iface MIXER
- name 'IEC958 Playback Default'
- value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
- comment {
- access 'read write'
- type IEC958
- count 1
- }
- }
- control.5 {
- iface MIXER
- name 'IEC958 Playback Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.6 {
- iface PCM
- device 3
- name ELD
- value ''
- comment {
- access 'read volatile'
- type BYTES
- count 0
- }
- }
- control.7 {
- iface PCM
- device 3
- name 'Playback Channel Map'
- value.0 0
- value.1 0
- value.2 0
- value.3 0
- value.4 0
- value.5 0
- value.6 0
- value.7 0
- comment {
- access 'read write'
- type INTEGER
- count 8
- range '0 - 36'
- }
- }
- }
- state.Venice2 {
- control.1 {
- iface MIXER
- name 'MIC Bias VCM Bandgap'
- value 'High Performance'
- comment {
- access 'read write'
- type ENUMERATED
- count 1
- item.0 'Low Power'
- item.1 'High Performance'
- }
- }
- control.2 {
- iface MIXER
- name 'DMIC MIC Comp Filter Config'
- value 6
- comment {
- access 'read write'
- type INTEGER
- count 1
- range '0 - 15'
- }
- }
- control.3 {
- iface MIXER
- name 'MIC1 Boost Volume'
- value 0
- comment {
- access 'read write'
- type INTEGER
- count 1
- range '0 - 2'
- dbmin 0
- dbmax 3000
- dbvalue.0 0
- }
- }
- control.4 {
- iface MIXER
- name 'MIC2 Boost Volume'
- value 0
- comment {
- access 'read write'
- type INTEGER
- count 1
- range '0 - 2'
- dbmin 0
- dbmax 3000
- dbvalue.0 0
- }
- }
- control.5 {
- iface MIXER
- name 'MIC1 Volume'
- value 0
- comment {
- access 'read write'
- type INTEGER
- count 1
- range '0 - 20'
- dbmin 0
- dbmax 2000
- dbvalue.0 0
- }
- }
- control.6 {
- iface MIXER
- name 'MIC2 Volume'
- value 0
- comment {
- access 'read write'
- type INTEGER
- count 1
- range '0 - 20'
- dbmin 0
- dbmax 2000
- dbvalue.0 0
- }
- }
- control.7 {
- iface MIXER
- name 'LINEA Single Ended Volume'
- value 1
- comment {
- access 'read write'
- type INTEGER
- count 1
- range '0 - 1'
- dbmin -600
- dbmax 0
- dbvalue.0 0
- }
- }
- control.8 {
- iface MIXER
- name 'LINEB Single Ended Volume'
- value 1
- comment {
- access 'read write'
- type INTEGER
- count 1
- range '0 - 1'
- dbmin -600
- dbmax 0
- dbvalue.0 0
- }
- }
- control.9 {
- iface MIXER
- name 'LINEA Volume'
- value 2
- comment {
- access 'read write'
- type INTEGER
- count 1
- range '0 - 5'
- dbmin -600
- dbmax 2000
- dbvalue.0 0
- }
- }
- control.10 {
- iface MIXER
- name 'LINEB Volume'
- value 2
- comment {
- access 'read write'
- type INTEGER
- count 1
- range '0 - 5'
- dbmin -600
- dbmax 2000
- dbvalue.0 0
- }
- }
- control.11 {
- iface MIXER
- name 'LINEA Ext Resistor Gain Mode'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.12 {
- iface MIXER
- name 'LINEB Ext Resistor Gain Mode'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.13 {
- iface MIXER
- name 'ADCL Boost Volume'
- value 0
- comment {
- access 'read write'
- type INTEGER
- count 1
- range '0 - 7'
- dbmin 0
- dbmax 4200
- dbvalue.0 0
- }
- }
- control.14 {
- iface MIXER
- name 'ADCR Boost Volume'
- value 0
- comment {
- access 'read write'
- type INTEGER
- count 1
- range '0 - 7'
- dbmin 0
- dbmax 4200
- dbvalue.0 0
- }
- }
- control.15 {
- iface MIXER
- name 'ADCL Volume'
- value 12
- comment {
- access 'read write'
- type INTEGER
- count 1
- range '0 - 15'
- dbmin -1200
- dbmax 300
- dbvalue.0 0
- }
- }
- control.16 {
- iface MIXER
- name 'ADCR Volume'
- value 12
- comment {
- access 'read write'
- type INTEGER
- count 1
- range '0 - 15'
- dbmin -1200
- dbmax 300
- dbvalue.0 0
- }
- }
- control.17 {
- iface MIXER
- name 'ADC Oversampling Rate'
- value '128*fs'
- comment {
- access 'read write'
- type ENUMERATED
- count 1
- item.0 '64*fs'
- item.1 '128*fs'
- }
- }
- control.18 {
- iface MIXER
- name 'ADC Quantizer Dither'
- value true
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.19 {
- iface MIXER
- name 'ADC High Performance Mode'
- value 'High Performance'
- comment {
- access 'read write'
- type ENUMERATED
- count 1
- item.0 'Low Power'
- item.1 'High Performance'
- }
- }
- control.20 {
- iface MIXER
- name 'DAC Mono Mode'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.21 {
- iface MIXER
- name 'SDIN Mode'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.22 {
- iface MIXER
- name 'SDOUT Mode'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.23 {
- iface MIXER
- name 'SDOUT Hi-Z Mode'
- value true
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.24 {
- iface MIXER
- name 'Filter Mode'
- value Music
- comment {
- access 'read write'
- type ENUMERATED
- count 1
- item.0 Voice
- item.1 Music
- }
- }
- control.25 {
- iface MIXER
- name 'Record Path DC Blocking'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.26 {
- iface MIXER
- name 'Playback Path DC Blocking'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.27 {
- iface MIXER
- name 'Digital BQ Volume'
- value 15
- comment {
- access 'read write'
- type INTEGER
- count 1
- range '0 - 15'
- dbmin -1500
- dbmax 0
- dbvalue.0 0
- }
- }
- control.28 {
- iface MIXER
- name 'Digital Sidetone Volume'
- value 0
- comment {
- access 'read write'
- type INTEGER
- count 1
- range '0 - 30'
- dbmin 0
- dbmax 3000
- dbvalue.0 0
- }
- }
- control.29 {
- iface MIXER
- name 'Digital Coarse Volume'
- value 0
- comment {
- access 'read write'
- type INTEGER
- count 1
- range '0 - 3'
- dbmin 0
- dbmax 1800
- dbvalue.0 0
- }
- }
- control.30 {
- iface MIXER
- name 'Digital Volume'
- value 15
- comment {
- access 'read write'
- type INTEGER
- count 1
- range '0 - 15'
- dbmin -1500
- dbmax 0
- dbvalue.0 0
- }
- }
- control.31 {
- iface MIXER
- name 'EQ Coefficients'
- value '000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
- comment {
- access 'read write'
- type BYTES
- count 105
- }
- }
- control.32 {
- iface MIXER
- name 'Digital EQ 3 Band Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.33 {
- iface MIXER
- name 'Digital EQ 5 Band Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.34 {
- iface MIXER
- name 'Digital EQ 7 Band Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.35 {
- iface MIXER
- name 'Digital EQ Clipping Detection'
- value true
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.36 {
- iface MIXER
- name 'Digital EQ Volume'
- value 15
- comment {
- access 'read write'
- type INTEGER
- count 1
- range '0 - 15'
- dbmin -1500
- dbmax 0
- dbvalue.0 0
- }
- }
- control.37 {
- iface MIXER
- name 'ALC Enable'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.38 {
- iface MIXER
- name 'ALC Attack Time'
- value '0.5ms'
- comment {
- access 'read write'
- type ENUMERATED
- count 1
- item.0 '0.5ms'
- item.1 '1ms'
- item.2 '5ms'
- item.3 '10ms'
- item.4 '25ms'
- item.5 '50ms'
- item.6 '100ms'
- item.7 '200ms'
- }
- }
- control.39 {
- iface MIXER
- name 'ALC Release Time'
- value '8s'
- comment {
- access 'read write'
- type ENUMERATED
- count 1
- item.0 '8s'
- item.1 '4s'
- item.2 '2s'
- item.3 '1s'
- item.4 '0.5s'
- item.5 '0.25s'
- item.6 '0.125s'
- item.7 '0.0625s'
- }
- }
- control.40 {
- iface MIXER
- name 'ALC Make Up Volume'
- value 0
- comment {
- access 'read write'
- type INTEGER
- count 1
- range '0 - 12'
- dbmin 0
- dbmax 1200
- dbvalue.0 0
- }
- }
- control.41 {
- iface MIXER
- name 'ALC Compression Ratio'
- value '1:1'
- comment {
- access 'read write'
- type ENUMERATED
- count 1
- item.0 '1:1'
- item.1 '1:1.5'
- item.2 '1:2'
- item.3 '1:4'
- item.4 '1:INF'
- }
- }
- control.42 {
- iface MIXER
- name 'ALC Expansion Ratio'
- value '1:1'
- comment {
- access 'read write'
- type ENUMERATED
- count 1
- item.0 '1:1'
- item.1 '2:1'
- item.2 '3:1'
- }
- }
- control.43 {
- iface MIXER
- name 'ALC Compression Threshold Volume'
- value 31
- comment {
- access 'read write'
- type INTEGER
- count 1
- range '0 - 31'
- dbmin -3100
- dbmax 0
- dbvalue.0 0
- }
- }
- control.44 {
- iface MIXER
- name 'ALC Expansion Threshold Volume'
- value 31
- comment {
- access 'read write'
- type INTEGER
- count 1
- range '0 - 31'
- dbmin -6600
- dbmax -3500
- dbvalue.0 -3500
- }
- }
- control.45 {
- iface MIXER
- name 'DAC HP Playback Performance Mode'
- value 'High Performance'
- comment {
- access 'read write'
- type ENUMERATED
- count 1
- item.0 'High Performance'
- item.1 'Low Power'
- }
- }
- control.46 {
- iface MIXER
- name 'DAC High Performance Mode'
- value 'High Performance'
- comment {
- access 'read write'
- type ENUMERATED
- count 1
- item.0 'Low Power'
- item.1 'High Performance'
- }
- }
- control.47 {
- iface MIXER
- name 'Headphone Left Mixer Volume'
- value 3
- comment {
- access 'read write'
- type INTEGER
- count 1
- range '0 - 3'
- dbmin -1200
- dbmax 0
- dbvalue.0 0
- }
- }
- control.48 {
- iface MIXER
- name 'Headphone Right Mixer Volume'
- value 3
- comment {
- access 'read write'
- type INTEGER
- count 1
- range '0 - 3'
- dbmin -1200
- dbmax 0
- dbvalue.0 0
- }
- }
- control.49 {
- iface MIXER
- name 'Speaker Left Mixer Volume'
- value 3
- comment {
- access 'read write'
- type INTEGER
- count 1
- range '0 - 3'
- dbmin -1200
- dbmax 0
- dbvalue.0 0
- }
- }
- control.50 {
- iface MIXER
- name 'Speaker Right Mixer Volume'
- value 3
- comment {
- access 'read write'
- type INTEGER
- count 1
- range '0 - 3'
- dbmin -1200
- dbmax 0
- dbvalue.0 0
- }
- }
- control.51 {
- iface MIXER
- name 'Receiver Left Mixer Volume'
- value 3
- comment {
- access 'read write'
- type INTEGER
- count 1
- range '0 - 3'
- dbmin -1200
- dbmax 0
- dbvalue.0 0
- }
- }
- control.52 {
- iface MIXER
- name 'Receiver Right Mixer Volume'
- value 3
- comment {
- access 'read write'
- type INTEGER
- count 1
- range '0 - 3'
- dbmin -1200
- dbmax 0
- dbvalue.0 0
- }
- }
- control.53 {
- iface MIXER
- name 'Headphone Volume'
- value.0 26
- value.1 26
- comment {
- access 'read write'
- type INTEGER
- count 2
- range '0 - 31'
- dbmin -6700
- dbmax 300
- dbvalue.0 0
- dbvalue.1 0
- }
- }
- control.54 {
- iface MIXER
- name 'Speaker Volume'
- value.0 20
- value.1 20
- comment {
- access 'read write'
- type INTEGER
- count 2
- range '0 - 39'
- dbmin -4800
- dbmax 1400
- dbvalue.0 0
- dbvalue.1 0
- }
- }
- control.55 {
- iface MIXER
- name 'Receiver Volume'
- value.0 21
- value.1 21
- comment {
- access 'read write'
- type INTEGER
- count 2
- range '0 - 31'
- dbmin -6200
- dbmax 800
- dbvalue.0 0
- dbvalue.1 0
- }
- }
- control.56 {
- iface MIXER
- name 'Headphone Left Switch'
- value true
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.57 {
- iface MIXER
- name 'Headphone Right Switch'
- value true
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.58 {
- iface MIXER
- name 'Speaker Left Switch'
- value true
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.59 {
- iface MIXER
- name 'Speaker Right Switch'
- value true
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.60 {
- iface MIXER
- name 'Receiver Left Switch'
- value true
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.61 {
- iface MIXER
- name 'Receiver Right Switch'
- value true
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.62 {
- iface MIXER
- name 'Zero-Crossing Detection'
- value true
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.63 {
- iface MIXER
- name 'Enhanced Vol Smoothing'
- value true
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.64 {
- iface MIXER
- name 'Volume Adjustment Smoothing'
- value true
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.65 {
- iface MIXER
- name 'Biquad Coefficients'
- value '000000000000000000000000000000'
- comment {
- access 'read write'
- type BYTES
- count 15
- }
- }
- control.66 {
- iface MIXER
- name 'Biquad Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.67 {
- iface MIXER
- name 'HP Right Out Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.68 {
- iface MIXER
- name 'HP Left Out Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.69 {
- iface MIXER
- name 'MIXHPRSEL Mux'
- value 'DAC Only'
- comment {
- access 'read write'
- type ENUMERATED
- count 1
- item.0 'DAC Only'
- item.1 'HP Mixer'
- }
- }
- control.70 {
- iface MIXER
- name 'MIXHPLSEL Mux'
- value 'DAC Only'
- comment {
- access 'read write'
- type ENUMERATED
- count 1
- item.0 'DAC Only'
- item.1 'HP Mixer'
- }
- }
- control.71 {
- iface MIXER
- name 'LINMOD Mux'
- value 'Left Only'
- comment {
- access 'read write'
- type ENUMERATED
- count 1
- item.0 'Left Only'
- item.1 'Left and Right'
- }
- }
- control.72 {
- iface MIXER
- name 'Right Receiver Mixer Left DAC Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.73 {
- iface MIXER
- name 'Right Receiver Mixer Right DAC Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.74 {
- iface MIXER
- name 'Right Receiver Mixer LINEA Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.75 {
- iface MIXER
- name 'Right Receiver Mixer LINEB Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.76 {
- iface MIXER
- name 'Right Receiver Mixer MIC1 Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.77 {
- iface MIXER
- name 'Right Receiver Mixer MIC2 Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.78 {
- iface MIXER
- name 'Left Receiver Mixer Left DAC Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.79 {
- iface MIXER
- name 'Left Receiver Mixer Right DAC Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.80 {
- iface MIXER
- name 'Left Receiver Mixer LINEA Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.81 {
- iface MIXER
- name 'Left Receiver Mixer LINEB Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.82 {
- iface MIXER
- name 'Left Receiver Mixer MIC1 Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.83 {
- iface MIXER
- name 'Left Receiver Mixer MIC2 Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.84 {
- iface MIXER
- name 'Right Speaker Mixer Left DAC Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.85 {
- iface MIXER
- name 'Right Speaker Mixer Right DAC Switch'
- value true
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.86 {
- iface MIXER
- name 'Right Speaker Mixer LINEA Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.87 {
- iface MIXER
- name 'Right Speaker Mixer LINEB Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.88 {
- iface MIXER
- name 'Right Speaker Mixer MIC1 Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.89 {
- iface MIXER
- name 'Right Speaker Mixer MIC2 Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.90 {
- iface MIXER
- name 'Left Speaker Mixer Left DAC Switch'
- value true
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.91 {
- iface MIXER
- name 'Left Speaker Mixer Right DAC Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.92 {
- iface MIXER
- name 'Left Speaker Mixer LINEA Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.93 {
- iface MIXER
- name 'Left Speaker Mixer LINEB Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.94 {
- iface MIXER
- name 'Left Speaker Mixer MIC1 Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.95 {
- iface MIXER
- name 'Left Speaker Mixer MIC2 Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.96 {
- iface MIXER
- name 'Right Headphone Mixer Left DAC Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.97 {
- iface MIXER
- name 'Right Headphone Mixer Right DAC Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.98 {
- iface MIXER
- name 'Right Headphone Mixer LINEA Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.99 {
- iface MIXER
- name 'Right Headphone Mixer LINEB Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.100 {
- iface MIXER
- name 'Right Headphone Mixer MIC1 Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.101 {
- iface MIXER
- name 'Right Headphone Mixer MIC2 Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.102 {
- iface MIXER
- name 'Left Headphone Mixer Left DAC Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.103 {
- iface MIXER
- name 'Left Headphone Mixer Right DAC Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.104 {
- iface MIXER
- name 'Left Headphone Mixer LINEA Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.105 {
- iface MIXER
- name 'Left Headphone Mixer LINEB Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.106 {
- iface MIXER
- name 'Left Headphone Mixer MIC1 Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.107 {
- iface MIXER
- name 'Left Headphone Mixer MIC2 Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.108 {
- iface MIXER
- name 'STENR Mux'
- value Normal
- comment {
- access 'read write'
- type ENUMERATED
- count 1
- item.0 Normal
- item.1 'Sidetone Right'
- }
- }
- control.109 {
- iface MIXER
- name 'STENL Mux'
- value Normal
- comment {
- access 'read write'
- type ENUMERATED
- count 1
- item.0 Normal
- item.1 'Sidetone Left'
- }
- }
- control.110 {
- iface MIXER
- name 'LTENR Mux'
- value Normal
- comment {
- access 'read write'
- type ENUMERATED
- count 1
- item.0 Normal
- item.1 Loopthrough
- }
- }
- control.111 {
- iface MIXER
- name 'LTENL Mux'
- value Normal
- comment {
- access 'read write'
- type ENUMERATED
- count 1
- item.0 Normal
- item.1 Loopthrough
- }
- }
- control.112 {
- iface MIXER
- name 'LBENR Mux'
- value Normal
- comment {
- access 'read write'
- type ENUMERATED
- count 1
- item.0 Normal
- item.1 Loopback
- }
- }
- control.113 {
- iface MIXER
- name 'LBENL Mux'
- value Normal
- comment {
- access 'read write'
- type ENUMERATED
- count 1
- item.0 Normal
- item.1 Loopback
- }
- }
- control.114 {
- iface MIXER
- name 'Right ADC Mixer IN12 Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.115 {
- iface MIXER
- name 'Right ADC Mixer IN34 Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.116 {
- iface MIXER
- name 'Right ADC Mixer IN56 Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.117 {
- iface MIXER
- name 'Right ADC Mixer LINEA Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.118 {
- iface MIXER
- name 'Right ADC Mixer LINEB Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.119 {
- iface MIXER
- name 'Right ADC Mixer MIC1 Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.120 {
- iface MIXER
- name 'Right ADC Mixer MIC2 Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.121 {
- iface MIXER
- name 'Left ADC Mixer IN12 Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.122 {
- iface MIXER
- name 'Left ADC Mixer IN34 Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.123 {
- iface MIXER
- name 'Left ADC Mixer IN56 Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.124 {
- iface MIXER
- name 'Left ADC Mixer LINEA Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.125 {
- iface MIXER
- name 'Left ADC Mixer LINEB Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.126 {
- iface MIXER
- name 'Left ADC Mixer MIC1 Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.127 {
- iface MIXER
- name 'Left ADC Mixer MIC2 Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.128 {
- iface MIXER
- name 'LINEB Mixer IN2 Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.129 {
- iface MIXER
- name 'LINEB Mixer IN4 Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.130 {
- iface MIXER
- name 'LINEB Mixer IN6 Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.131 {
- iface MIXER
- name 'LINEB Mixer IN56 Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.132 {
- iface MIXER
- name 'LINEA Mixer IN1 Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.133 {
- iface MIXER
- name 'LINEA Mixer IN3 Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.134 {
- iface MIXER
- name 'LINEA Mixer IN5 Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.135 {
- iface MIXER
- name 'LINEA Mixer IN34 Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.136 {
- iface MIXER
- name 'DMIC Mux'
- value ADC
- comment {
- access 'read write'
- type ENUMERATED
- count 1
- item.0 ADC
- item.1 DMIC
- }
- }
- control.137 {
- iface MIXER
- name 'MIC2 Mux'
- value IN34
- comment {
- access 'read write'
- type ENUMERATED
- count 1
- item.0 IN34
- item.1 IN56
- }
- }
- control.138 {
- iface MIXER
- name 'MIC1 Mux'
- value IN12
- comment {
- access 'read write'
- type ENUMERATED
- count 1
- item.0 IN12
- item.1 IN56
- }
- }
- control.139 {
- iface MIXER
- name 'Speakers Switch'
- value true
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.140 {
- iface MIXER
- name 'Headphone Jack Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.141 {
- iface MIXER
- name 'Mic Jack Switch'
- value false
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.142 {
- iface MIXER
- name 'Int Mic Switch'
- value true
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- }
- EOF
- cat > /tmp/urfs/install-tegra.sh <<EOF
- update-alternatives --install /etc/ld.so.conf.d/arm-linux-gnueabihf_EGL.conf arm-linux-gnueabihf_egl_conf /usr/lib/arm-linux-gnueabihf/tegra-egl/ld.so.conf 1000
- update-alternatives --install /etc/ld.so.conf.d/arm-linux-gnueabihf_GL.conf arm-linux-gnueabihf_gl_conf /usr/lib/arm-linux-gnueabihf/tegra/ld.so.conf 1000
- ldconfig
- adduser youngboy video
- EOF
- #su user -c "xdg-settings set default-web-browser chromium.desktop"
- chmod a+x /tmp/urfs/install-tegra.sh
- chroot /tmp/urfs /bin/bash -c /install-tegra.sh
- rm /tmp/urfs/install-tegra.sh
- echo "console=tty1 debug verbose root=${target_rootfs} rootwait rw lsm.module_locking=0" > kernel-config
- vbutil_arch="x86"
- if [ $ubuntu_arch = "armhf" ]
- then
- vbutil_arch="arm"
- fi
- current_rootfs="`rootdev -s`"
- current_kernfs_num=$((${current_rootfs: -1:1}-1))
- current_kernfs=${current_rootfs: 0:-1}$current_kernfs_num
- vbutil_kernel --repack ${target_kern} \
- --oldblob $current_kernfs \
- --keyblock /usr/share/vboot/devkeys/kernel.keyblock \
- --version 1 \
- --signprivate /usr/share/vboot/devkeys/kernel_data_key.vbprivk \
- --config kernel-config \
- --arch $vbutil_arch
- #Set Ubuntu kernel partition as top priority for next boot (and next boot only)
- cgpt add -i 6 -P 5 -T 1 ${target_disk}
- echo -e "
- Installation seems to be complete. If ChrUbuntu fails when you reboot,
- power off your Chrome OS device and then turn it back on. You'll be back
- in Chrome OS. If you're happy with ChrUbuntu when you reboot be sure to run:
- sudo cgpt add -i 6 -P 5 -S 1 ${target_disk}
- To make it the default boot option. The ChrUbuntu login is:
- Username: user
- Password: user
- We're now ready to start ChrUbuntu!
- "
- read -p "Press [Enter] to reboot..."
- reboot
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement