Advertisement
Anatomica

Ubuntu

Oct 29th, 2017
609
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 41.58 KB | None | 0 0
  1. # fw_type will always be developer for Mario.
  2. # Alex and ZGB need the developer BIOS installed though.
  3. fw_type="`crossystem mainfw_type`"
  4. if [ ! "$fw_type" = "developer" ]
  5. then
  6. echo -e "\nYou're Chromebook is not running a developer BIOS!"
  7. echo -e "You need to run:"
  8. echo -e ""
  9. echo -e "sudo chromeos-firmwareupdate --mode=todev"
  10. echo -e ""
  11. echo -e "and then re-run this script."
  12. return
  13. else
  14. echo -e "\nOh good. You're running a developer BIOS...\n"
  15. fi
  16.  
  17. # hwid lets us know if this is a Mario (Cr-48), Alex (Samsung Series 5), ZGB (Acer), etc
  18. hwid="`crossystem hwid`"
  19.  
  20. echo -e "Chome OS model is: $hwid\n"
  21.  
  22. chromebook_arch="`uname -m`"
  23. if [ ! "$chromebook_arch" = "x86_64" ]
  24. then
  25. echo -e "This version of Chrome OS isn't 64-bit. We'll use an unofficial Chromium OS kernel to get around this...\n"
  26. else
  27. echo -e "and you're running a 64-bit version of Chrome OS! That's just dandy!\n"
  28. fi
  29.  
  30. read -p "Press [Enter] to continue..."
  31.  
  32. powerd_status="`initctl status powerd`"
  33. if [ ! "$powerd_status" = "powerd stop/waiting" ]
  34. then
  35. echo -e "Stopping powerd to keep display from timing out..."
  36. initctl stop powerd
  37. fi
  38.  
  39. powerm_status="`initctl status powerm`"
  40. if [ ! "$powerm_status" = "powerm stop/waiting" ]
  41. then
  42. echo -e "Stopping powerm to keep display from timing out..."
  43. initctl stop powerm
  44. fi
  45.  
  46. setterm -blank 0
  47.  
  48. if [ "$1" != "" ]; then
  49. target_disk=$1
  50. echo "Got ${target_disk} as target drive"
  51. echo ""
  52. echo "WARNING! All data on this device will be wiped out! Continue at your own risk!"
  53. echo ""
  54. read -p "Press [Enter] to install ChrUbuntu on ${target_disk} or CTRL+C to quit"
  55.  
  56. ext_size="`blockdev --getsz ${target_disk}`"
  57. aroot_size=$((ext_size - 65600 - 33))
  58. parted --script ${target_disk} "mktable gpt"
  59. cgpt create ${target_disk}
  60. cgpt add -i 6 -b 64 -s 32768 -S 1 -P 5 -l KERN-A -t "kernel" ${target_disk}
  61. cgpt add -i 7 -b 65600 -s $aroot_size -l ROOT-A -t "rootfs" ${target_disk}
  62. sync
  63. blockdev --rereadpt ${target_disk}
  64. partprobe ${target_disk}
  65. crossystem dev_boot_usb=1
  66. else
  67. target_disk="`rootdev -d -s`"
  68. # Do partitioning (if we haven't already)
  69. ckern_size="`cgpt show -i 6 -n -s -q ${target_disk}`"
  70. croot_size="`cgpt show -i 7 -n -s -q ${target_disk}`"
  71. state_size="`cgpt show -i 1 -n -s -q ${target_disk}`"
  72.  
  73. max_ubuntu_size=$(($state_size/1024/1024/2))
  74. rec_ubuntu_size=$(($max_ubuntu_size - 1))
  75. # If KERN-C and ROOT-C are one, we partition, otherwise assume they're what they need to be...
  76. if [ "$ckern_size" = "1" -o "$croot_size" = "1" ]
  77. then
  78. while :
  79. do
  80. 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
  81. if [ ! $ubuntu_size -ne 0 2>/dev/null ]
  82. then
  83. echo -e "\n\nNumbers only please...\n\n"
  84. continue
  85. fi
  86. if [ $ubuntu_size -lt 5 -o $ubuntu_size -gt $max_ubuntu_size ]
  87. then
  88. echo -e "\n\nThat number is out of range. Enter a number 5 through $max_ubuntu_size\n\n"
  89. continue
  90. fi
  91. break
  92. done
  93. # We've got our size in GB for ROOT-C so do the math...
  94.  
  95. #calculate sector size for rootc
  96. rootc_size=$(($ubuntu_size*1024*1024*2))
  97.  
  98. #kernc is always 16mb
  99. kernc_size=32768
  100.  
  101. #new stateful size with rootc and kernc subtracted from original
  102. stateful_size=$(($state_size - $rootc_size - $kernc_size))
  103.  
  104. #start stateful at the same spot it currently starts at
  105. stateful_start="`cgpt show -i 1 -n -b -q ${target_disk}`"
  106.  
  107. #start kernc at stateful start plus stateful size
  108. kernc_start=$(($stateful_start + $stateful_size))
  109.  
  110. #start rootc at kernc start plus kernc size
  111. rootc_start=$(($kernc_start + $kernc_size))
  112.  
  113. #Do the real work
  114.  
  115. echo -e "\n\nModifying partition table to make room for Ubuntu."
  116. echo -e "Your Chromebook will reboot, wipe your data and then"
  117. echo -e "you should re-run this script..."
  118. umount /mnt/stateful_partition
  119.  
  120. # stateful first
  121. cgpt add -i 1 -b $stateful_start -s $stateful_size -l STATE ${target_disk}
  122.  
  123. # now kernc
  124. cgpt add -i 6 -b $kernc_start -s $kernc_size -l KERN-C ${target_disk}
  125.  
  126. # finally rootc
  127. cgpt add -i 7 -b $rootc_start -s $rootc_size -l ROOT-C ${target_disk}
  128.  
  129. reboot
  130. exit
  131. fi
  132. fi
  133.  
  134. if [ ! -d /mnt/stateful_partition/ubuntu ]
  135. then
  136. mkdir /mnt/stateful_partition/ubuntu
  137. fi
  138.  
  139. cd /mnt/stateful_partition/ubuntu
  140.  
  141. # try mounting a USB / SD Card if it's there...
  142. if [ ! -d /tmp/usb_files ]
  143. then
  144. mkdir /tmp/usb_files
  145. fi
  146. mount /dev/sdb /tmp/usb_files > /dev/null 2>&1
  147. mount /dev/sdb1 /tmp/usb_files > /dev/null 2>&1
  148.  
  149. # Copy /tmp/usb_files/ubuntu (.sha1 and foo.6 files) to SSD if they're there
  150. if [ -d /tmp/usb_files/ubuntu ]
  151. then
  152. cp -rf /tmp/usb_files/ubuntu/* /mnt/stateful_partition/ubuntu/
  153. fi
  154.  
  155. if [[ "${target_disk}" =~ "mmcblk" ]]
  156. then
  157. target_rootfs="${target_disk}p7"
  158. target_kern="${target_disk}p6"
  159. else
  160. target_rootfs="${target_disk}7"
  161. target_kern="${target_disk}6"
  162. fi
  163.  
  164. echo "Target Kernel Partition: $target_kern Target Root FS: ${target_rootfs}"
  165.  
  166. # hwid lets us know if this is a Mario (Cr-48), Alex (Samsung Series 5), ZGB (Acer), etc
  167. hwid="`crossystem hwid`"
  168.  
  169. chromebook_arch="`uname -m`"
  170.  
  171. ubuntu_metapackage=${1:-default}
  172.  
  173. if [ "$chromebook_arch" = "x86_64" ]
  174. then
  175. ubuntu_arch="amd64"
  176. if [ "$ubuntu_metapackage" = "default" ]
  177. then
  178. ubuntu_metapackage="ubuntu-desktop"
  179. fi
  180. elif [ "$chromebook_arch" = "i686" ]
  181. then
  182. ubuntu_arch="i386"
  183. if [ "$ubuntu_metapackage" = "default" ]
  184. then
  185. ubuntu_metapackage="ubuntu-desktop"
  186. fi
  187. elif [ "$chromebook_arch" = "armv7l" ]
  188. then
  189. ubuntu_arch="armhf"
  190. if [ "$ubuntu_metapackage" = "default" ]
  191. then
  192. ubuntu_metapackage="xubuntu-desktop"
  193. fi
  194. else
  195. echo -e "Error: This script doesn't know how to install ChrUbuntu on $chromebook_arch"
  196. exit
  197. fi
  198.  
  199. echo -e "\nChrome device model is: $hwid\n"
  200.  
  201. echo -e "Installing Ubuntu ${ubuntu_version} with metapackage ${ubuntu_metapackage}\n"
  202.  
  203. echo -e "Kernel Arch is: $chromebook_arch Installing Ubuntu Arch: $ubuntu_arch\n"
  204.  
  205. read -p "Press [Enter] to continue..."
  206.  
  207. if [ ! -d /mnt/stateful_partition/ubuntu ]
  208. then
  209. mkdir /mnt/stateful_partition/ubuntu
  210. fi
  211.  
  212. cd /mnt/stateful_partition/ubuntu
  213.  
  214. if [[ "${target_disk}" =~ "mmcblk" ]]
  215. then
  216. target_rootfs="${target_disk}p7"
  217. target_kern="${target_disk}p6"
  218. else
  219. target_rootfs="${target_disk}7"
  220. target_kern="${target_disk}6"
  221. fi
  222.  
  223. echo "Target Kernel Partition: $target_kern Target Root FS: ${target_rootfs}"
  224.  
  225. if mount|grep ${target_rootfs}
  226. then
  227. echo "Refusing to continue since ${target_rootfs} is formatted and mounted. Try rebooting"
  228. exit
  229. fi
  230.  
  231. mkfs.ext4 ${target_rootfs}
  232.  
  233. if [ ! -d /tmp/urfs ]
  234. then
  235. mkdir /tmp/urfs
  236. fi
  237. mount -t ext4 ${target_rootfs} /tmp/urfs
  238.  
  239. tar_file="http://mirrors.ubuntu.webair.com/ubuntu-cdimage/ubuntu-core/releases/14.04/release/ubuntu-core-14.04.2-core-armhf.tar.gz"
  240. if [ $ubuntu_version = "dev" ]
  241. then
  242. ubuntu_animal=`wget --quiet -O - http://changelogs.ubuntu.com/meta-release-development | grep "^Dist: " | tail -1 | sed -r 's/^Dist: (.*)$/\1/'`
  243. tar_file="http://cdimage.ubuntu.com/ubuntu-core/daily/current/$ubuntu_animal-core-$ubuntu_arch.tar.gz"
  244. fi
  245. wget -O - $tar_file | tar xzvvp -C /tmp/urfs/
  246.  
  247. mount -o bind /proc /tmp/urfs/proc
  248. mount -o bind /dev /tmp/urfs/dev
  249. mount -o bind /dev/pts /tmp/urfs/dev/pts
  250. mount -o bind /sys /tmp/urfs/sys
  251.  
  252. if [ -f /usr/bin/old_bins/cgpt ]
  253. then
  254. cp /usr/bin/old_bins/cgpt /tmp/urfs/usr/bin/
  255. else
  256. cp /usr/bin/cgpt /tmp/urfs/usr/bin/
  257. fi
  258.  
  259. chmod a+rx /tmp/urfs/usr/bin/cgpt
  260. if [ ! -d /tmp/urfs/run/resolvconf/ ]
  261. then
  262. mkdir /tmp/urfs/run/resolvconf/
  263. fi
  264. cp /etc/resolv.conf /tmp/urfs/run/resolvconf/
  265. ln -s -f /run/resolvconf/resolv.conf /tmp/urfs/etc/resolv.conf
  266. echo chrubuntu > /tmp/urfs/etc/hostname
  267. #echo -e "127.0.0.1 localhost
  268. echo -e "\n127.0.1.1 chrubuntu" >> /tmp/urfs/etc/hosts
  269. # The following lines are desirable for IPv6 capable hosts
  270. #::1 localhost ip6-localhost ip6-loopback
  271. #fe00::0 ip6-localnet
  272. #ff00::0 ip6-mcastprefix
  273. #ff02::1 ip6-allnodes
  274. #ff02::2 ip6-allrouters" > /tmp/urfs/etc/hosts
  275.  
  276. cr_install="wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
  277. add-apt-repository \"deb http://dl.google.com/linux/chrome/deb/ stable main\"
  278. apt-get update
  279. apt-get -y install google-chrome-stable"
  280. if [ $ubuntu_arch = 'armhf' ]
  281. then
  282. cr_install='apt-get -y install chromium-browser'
  283. fi
  284.  
  285. add_apt_repository_package='software-properties-common'
  286. ubuntu_major_version=${ubuntu_version:0:2}
  287. ubuntu_minor_version=${ubuntu_version:3:2}
  288. if [ $ubuntu_major_version -le 12 ] && [ $ubuntu_minor_version -lt 10 ]
  289. then
  290. add_apt_repository_package='python-software-properties'
  291. fi
  292.  
  293. echo -e "apt-get -y update
  294. apt-get -y dist-upgrade
  295. apt-get -y install ubuntu-minimal
  296. apt-get -y install wget
  297. apt-get -y install $add_apt_repository_package
  298. add-apt-repository main
  299. add-apt-repository universe
  300. add-apt-repository restricted
  301. add-apt-repository multiverse
  302. apt-get update
  303. apt-get -y install $ubuntu_metapackage
  304. $cr_install
  305. if [ -f /usr/lib/lightdm/lightdm-set-defaults ]
  306. then
  307. /usr/lib/lightdm/lightdm-set-defaults --autologin user
  308. fi
  309. useradd -m user -s /bin/bash
  310. echo user | echo user:user | chpasswd
  311. adduser user adm
  312. adduser user sudo
  313. update-alternatives --set x-www-browser /usr/bin/chromium-browser
  314. locale-gen en_US en_US.UTF-8
  315. echo -e 'LANG=en_US.UTF-8\nLC_ALL=en_US.UTF-8' > /etc/default/locale
  316. LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 dpkg-reconfigure locales" > /tmp/urfs/install-ubuntu.sh
  317.  
  318. chmod a+x /tmp/urfs/install-ubuntu.sh
  319. chroot /tmp/urfs /bin/bash -c /install-ubuntu.sh
  320. rm /tmp/urfs/install-ubuntu.sh
  321.  
  322. KERN_VER=`uname -r`
  323. mkdir -p /tmp/urfs/lib/modules/$KERN_VER/
  324. cp -ar /lib/modules/$KERN_VER/* /tmp/urfs/lib/modules/$KERN_VER/
  325. if [ ! -d /tmp/urfs/lib/firmware/ ]
  326. then
  327. mkdir /tmp/urfs/lib/firmware/
  328. fi
  329. cp -ar /lib/firmware/* /tmp/urfs/lib/firmware/
  330.  
  331.  
  332. # copy adobe flash player plugin
  333. cp /opt/google/chrome/pepper/libpepflashplayer.so /tmp/urfs/usr/lib/chromium-browser
  334.  
  335. # tell chromium-browser where to find flash plugin
  336. echo -e 'CHROMIUM_FLAGS="${CHROMIUM_FLAGS} --ppapi-flash-path=/usr/lib/chromium-browser/libpepflashplayer.so"' >> /tmp/urfs/etc/chromium-browser/default
  337.  
  338. # flash plugin requires a new version of libstdc++6 from test repository
  339. cat > /tmp/urfs/install-flash.sh <<EOF
  340. add-apt-repository -y ppa:ubuntu-toolchain-r/test
  341. apt-get update
  342. apt-get install -y libstdc++6
  343. EOF
  344.  
  345. chmod a+x /tmp/urfs/install-flash.sh
  346. chroot /tmp/urfs /bin/bash -c /install-flash.sh
  347. rm /tmp/urfs/install-flash.sh
  348.  
  349. # hack for removing uap0 device on startup (avoid freeze)
  350. echo 'install mwifiex_sdio /sbin/modprobe --ignore-install mwifiex_sdio && sleep 1 && iw dev uap0 del' > /tmp/urfs/etc/modprobe.d/mwifiex.conf
  351.  
  352. # BIG specific files here
  353. cp /etc/X11/xorg.conf.d/tegra.conf /tmp/urfs/usr/share/X11/xorg.conf.d/
  354. l4tdir=`mktemp -d`
  355. l4t=tk1-driver-package-r216
  356. wget -P ${l4tdir} https://developer.nvidia.com/embedded/dlc/tk1-driver-package-r216
  357. cd ${l4tdir}
  358. tar xvpf ${l4t}
  359. cd Linux_for_Tegra/rootfs/
  360. tar xvpf ../nv_tegra/nvidia_drivers.tbz2
  361. tar cf - usr/lib | ( cd /tmp/urfs ; tar xvf -)
  362.  
  363. # cuda symlinks
  364. ln -s libcuda.so.1 /tmp/urfs/usr/lib/arm-linux-gnueabihf/libcuda.so
  365. ln -s tegra/libcuda.so.1 /tmp/urfs/usr/lib/arm-linux-gnueabihf/libcuda.so.1
  366. ln -s tegra/libcuda.so.1.1 /tmp/urfs/usr/lib/arm-linux-gnueabihf/libcuda.so.1.1
  367.  
  368. echo "/usr/lib/arm-linux-gnueabihf/tegra" > /tmp/urfs/etc/ld.so.conf.d/nvidia-tegra.conf
  369. echo "/usr/lib/arm-linux-gnueabihf/tegra-egl" > /tmp/urfs/usr/lib/arm-linux-gnueabihf/tegra-egl/ld.so.conf
  370. echo "/usr/lib/arm-linux-gnueabihf/tegra" > /tmp/urfs/usr/lib/arm-linux-gnueabihf/tegra/ld.so.conf
  371.  
  372. cat >/tmp/urfs/etc/udev/rules.d/99-tegra-lid-switch.rules <<EOF
  373. ACTION=="remove", GOTO="tegra_lid_switch_end"
  374.  
  375. SUBSYSTEM=="input", KERNEL=="event*", SUBSYSTEMS=="platform", KERNELS=="gpio-keys.4", TAG+="power-switch"
  376.  
  377. LABEL="tegra_lid_switch_end"
  378. EOF
  379.  
  380. # nvidia device node permissions
  381. cat > /tmp/urfs/lib/udev/rules.d/51-nvrm.rules <<EOF
  382. KERNEL=="knvmap", GROUP="video", MODE="0660"
  383. KERNEL=="nvhdcp1", GROUP="video", MODE="0660"
  384. KERNEL=="nvhost-as-gpu", GROUP="video", MODE="0660"
  385. KERNEL=="nvhost-ctrl", GROUP="video", MODE="0660"
  386. KERNEL=="nvhost-ctrl-gpu", GROUP="video", MODE="0660"
  387. KERNEL=="nvhost-dbg-gpu", GROUP="video", MODE="0660"
  388. KERNEL=="nvhost-gpu", GROUP="video", MODE="0660"
  389. KERNEL=="nvhost-msenc", GROUP="video", MODE=0660"
  390. KERNEL=="nvhost-prof-gpu", GROUP="video", MODE=0660"
  391. KERNEL=="nvhost-tsec", GROUP="video", MODE="0660"
  392. KERNEL=="nvhost-vic", GROUP="video", MODE="0660"
  393. KERNEL=="nvmap", GROUP="video", MODE="0660"
  394. KERNEL=="tegra_dc_0", GROUP="video", MODE="0660"
  395. KERNEL=="tegra_dc_1", GROUP="video", MODE="0660"
  396. KERNEL=="tegra_dc_ctrl", GROUP="video", MODE="0660"
  397. EOF
  398.  
  399. # alsa mixer settings to enable internal speakers
  400. cat > /tmp/urfs/var/lib/alsa/asound.state <<EOF
  401. state.HDATegra {
  402. control.1 {
  403. iface CARD
  404. name 'HDMI/DP,pcm=3 Jack'
  405. value false
  406. comment {
  407. access read
  408. type BOOLEAN
  409. count 1
  410. }
  411. }
  412. control.2 {
  413. iface MIXER
  414. name 'IEC958 Playback Con Mask'
  415. value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
  416. comment {
  417. access read
  418. type IEC958
  419. count 1
  420. }
  421. }
  422. control.3 {
  423. iface MIXER
  424. name 'IEC958 Playback Pro Mask'
  425. value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
  426. comment {
  427. access read
  428. type IEC958
  429. count 1
  430. }
  431. }
  432. control.4 {
  433. iface MIXER
  434. name 'IEC958 Playback Default'
  435. value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
  436. comment {
  437. access 'read write'
  438. type IEC958
  439. count 1
  440. }
  441. }
  442. control.5 {
  443. iface MIXER
  444. name 'IEC958 Playback Switch'
  445. value false
  446. comment {
  447. access 'read write'
  448. type BOOLEAN
  449. count 1
  450. }
  451. }
  452. control.6 {
  453. iface PCM
  454. device 3
  455. name ELD
  456. value ''
  457. comment {
  458. access 'read volatile'
  459. type BYTES
  460. count 0
  461. }
  462. }
  463. control.7 {
  464. iface PCM
  465. device 3
  466. name 'Playback Channel Map'
  467. value.0 0
  468. value.1 0
  469. value.2 0
  470. value.3 0
  471. value.4 0
  472. value.5 0
  473. value.6 0
  474. value.7 0
  475. comment {
  476. access 'read write'
  477. type INTEGER
  478. count 8
  479. range '0 - 36'
  480. }
  481. }
  482. }
  483. state.Venice2 {
  484. control.1 {
  485. iface MIXER
  486. name 'MIC Bias VCM Bandgap'
  487. value 'High Performance'
  488. comment {
  489. access 'read write'
  490. type ENUMERATED
  491. count 1
  492. item.0 'Low Power'
  493. item.1 'High Performance'
  494. }
  495. }
  496. control.2 {
  497. iface MIXER
  498. name 'DMIC MIC Comp Filter Config'
  499. value 6
  500. comment {
  501. access 'read write'
  502. type INTEGER
  503. count 1
  504. range '0 - 15'
  505. }
  506. }
  507. control.3 {
  508. iface MIXER
  509. name 'MIC1 Boost Volume'
  510. value 0
  511. comment {
  512. access 'read write'
  513. type INTEGER
  514. count 1
  515. range '0 - 2'
  516. dbmin 0
  517. dbmax 3000
  518. dbvalue.0 0
  519. }
  520. }
  521. control.4 {
  522. iface MIXER
  523. name 'MIC2 Boost Volume'
  524. value 0
  525. comment {
  526. access 'read write'
  527. type INTEGER
  528. count 1
  529. range '0 - 2'
  530. dbmin 0
  531. dbmax 3000
  532. dbvalue.0 0
  533. }
  534. }
  535. control.5 {
  536. iface MIXER
  537. name 'MIC1 Volume'
  538. value 0
  539. comment {
  540. access 'read write'
  541. type INTEGER
  542. count 1
  543. range '0 - 20'
  544. dbmin 0
  545. dbmax 2000
  546. dbvalue.0 0
  547. }
  548. }
  549. control.6 {
  550. iface MIXER
  551. name 'MIC2 Volume'
  552. value 0
  553. comment {
  554. access 'read write'
  555. type INTEGER
  556. count 1
  557. range '0 - 20'
  558. dbmin 0
  559. dbmax 2000
  560. dbvalue.0 0
  561. }
  562. }
  563. control.7 {
  564. iface MIXER
  565. name 'LINEA Single Ended Volume'
  566. value 1
  567. comment {
  568. access 'read write'
  569. type INTEGER
  570. count 1
  571. range '0 - 1'
  572. dbmin -600
  573. dbmax 0
  574. dbvalue.0 0
  575. }
  576. }
  577. control.8 {
  578. iface MIXER
  579. name 'LINEB Single Ended Volume'
  580. value 1
  581. comment {
  582. access 'read write'
  583. type INTEGER
  584. count 1
  585. range '0 - 1'
  586. dbmin -600
  587. dbmax 0
  588. dbvalue.0 0
  589. }
  590. }
  591. control.9 {
  592. iface MIXER
  593. name 'LINEA Volume'
  594. value 2
  595. comment {
  596. access 'read write'
  597. type INTEGER
  598. count 1
  599. range '0 - 5'
  600. dbmin -600
  601. dbmax 2000
  602. dbvalue.0 0
  603. }
  604. }
  605. control.10 {
  606. iface MIXER
  607. name 'LINEB Volume'
  608. value 2
  609. comment {
  610. access 'read write'
  611. type INTEGER
  612. count 1
  613. range '0 - 5'
  614. dbmin -600
  615. dbmax 2000
  616. dbvalue.0 0
  617. }
  618. }
  619. control.11 {
  620. iface MIXER
  621. name 'LINEA Ext Resistor Gain Mode'
  622. value false
  623. comment {
  624. access 'read write'
  625. type BOOLEAN
  626. count 1
  627. }
  628. }
  629. control.12 {
  630. iface MIXER
  631. name 'LINEB Ext Resistor Gain Mode'
  632. value false
  633. comment {
  634. access 'read write'
  635. type BOOLEAN
  636. count 1
  637. }
  638. }
  639. control.13 {
  640. iface MIXER
  641. name 'ADCL Boost Volume'
  642. value 0
  643. comment {
  644. access 'read write'
  645. type INTEGER
  646. count 1
  647. range '0 - 7'
  648. dbmin 0
  649. dbmax 4200
  650. dbvalue.0 0
  651. }
  652. }
  653. control.14 {
  654. iface MIXER
  655. name 'ADCR Boost Volume'
  656. value 0
  657. comment {
  658. access 'read write'
  659. type INTEGER
  660. count 1
  661. range '0 - 7'
  662. dbmin 0
  663. dbmax 4200
  664. dbvalue.0 0
  665. }
  666. }
  667. control.15 {
  668. iface MIXER
  669. name 'ADCL Volume'
  670. value 12
  671. comment {
  672. access 'read write'
  673. type INTEGER
  674. count 1
  675. range '0 - 15'
  676. dbmin -1200
  677. dbmax 300
  678. dbvalue.0 0
  679. }
  680. }
  681. control.16 {
  682. iface MIXER
  683. name 'ADCR Volume'
  684. value 12
  685. comment {
  686. access 'read write'
  687. type INTEGER
  688. count 1
  689. range '0 - 15'
  690. dbmin -1200
  691. dbmax 300
  692. dbvalue.0 0
  693. }
  694. }
  695. control.17 {
  696. iface MIXER
  697. name 'ADC Oversampling Rate'
  698. value '128*fs'
  699. comment {
  700. access 'read write'
  701. type ENUMERATED
  702. count 1
  703. item.0 '64*fs'
  704. item.1 '128*fs'
  705. }
  706. }
  707. control.18 {
  708. iface MIXER
  709. name 'ADC Quantizer Dither'
  710. value true
  711. comment {
  712. access 'read write'
  713. type BOOLEAN
  714. count 1
  715. }
  716. }
  717. control.19 {
  718. iface MIXER
  719. name 'ADC High Performance Mode'
  720. value 'High Performance'
  721. comment {
  722. access 'read write'
  723. type ENUMERATED
  724. count 1
  725. item.0 'Low Power'
  726. item.1 'High Performance'
  727. }
  728. }
  729. control.20 {
  730. iface MIXER
  731. name 'DAC Mono Mode'
  732. value false
  733. comment {
  734. access 'read write'
  735. type BOOLEAN
  736. count 1
  737. }
  738. }
  739. control.21 {
  740. iface MIXER
  741. name 'SDIN Mode'
  742. value false
  743. comment {
  744. access 'read write'
  745. type BOOLEAN
  746. count 1
  747. }
  748. }
  749. control.22 {
  750. iface MIXER
  751. name 'SDOUT Mode'
  752. value false
  753. comment {
  754. access 'read write'
  755. type BOOLEAN
  756. count 1
  757. }
  758. }
  759. control.23 {
  760. iface MIXER
  761. name 'SDOUT Hi-Z Mode'
  762. value true
  763. comment {
  764. access 'read write'
  765. type BOOLEAN
  766. count 1
  767. }
  768. }
  769. control.24 {
  770. iface MIXER
  771. name 'Filter Mode'
  772. value Music
  773. comment {
  774. access 'read write'
  775. type ENUMERATED
  776. count 1
  777. item.0 Voice
  778. item.1 Music
  779. }
  780. }
  781. control.25 {
  782. iface MIXER
  783. name 'Record Path DC Blocking'
  784. value false
  785. comment {
  786. access 'read write'
  787. type BOOLEAN
  788. count 1
  789. }
  790. }
  791. control.26 {
  792. iface MIXER
  793. name 'Playback Path DC Blocking'
  794. value false
  795. comment {
  796. access 'read write'
  797. type BOOLEAN
  798. count 1
  799. }
  800. }
  801. control.27 {
  802. iface MIXER
  803. name 'Digital BQ Volume'
  804. value 15
  805. comment {
  806. access 'read write'
  807. type INTEGER
  808. count 1
  809. range '0 - 15'
  810. dbmin -1500
  811. dbmax 0
  812. dbvalue.0 0
  813. }
  814. }
  815. control.28 {
  816. iface MIXER
  817. name 'Digital Sidetone Volume'
  818. value 0
  819. comment {
  820. access 'read write'
  821. type INTEGER
  822. count 1
  823. range '0 - 30'
  824. dbmin 0
  825. dbmax 3000
  826. dbvalue.0 0
  827. }
  828. }
  829. control.29 {
  830. iface MIXER
  831. name 'Digital Coarse Volume'
  832. value 0
  833. comment {
  834. access 'read write'
  835. type INTEGER
  836. count 1
  837. range '0 - 3'
  838. dbmin 0
  839. dbmax 1800
  840. dbvalue.0 0
  841. }
  842. }
  843. control.30 {
  844. iface MIXER
  845. name 'Digital Volume'
  846. value 15
  847. comment {
  848. access 'read write'
  849. type INTEGER
  850. count 1
  851. range '0 - 15'
  852. dbmin -1500
  853. dbmax 0
  854. dbvalue.0 0
  855. }
  856. }
  857. control.31 {
  858. iface MIXER
  859. name 'EQ Coefficients'
  860. value '000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
  861. comment {
  862. access 'read write'
  863. type BYTES
  864. count 105
  865. }
  866. }
  867. control.32 {
  868. iface MIXER
  869. name 'Digital EQ 3 Band Switch'
  870. value false
  871. comment {
  872. access 'read write'
  873. type BOOLEAN
  874. count 1
  875. }
  876. }
  877. control.33 {
  878. iface MIXER
  879. name 'Digital EQ 5 Band Switch'
  880. value false
  881. comment {
  882. access 'read write'
  883. type BOOLEAN
  884. count 1
  885. }
  886. }
  887. control.34 {
  888. iface MIXER
  889. name 'Digital EQ 7 Band Switch'
  890. value false
  891. comment {
  892. access 'read write'
  893. type BOOLEAN
  894. count 1
  895. }
  896. }
  897. control.35 {
  898. iface MIXER
  899. name 'Digital EQ Clipping Detection'
  900. value true
  901. comment {
  902. access 'read write'
  903. type BOOLEAN
  904. count 1
  905. }
  906. }
  907. control.36 {
  908. iface MIXER
  909. name 'Digital EQ Volume'
  910. value 15
  911. comment {
  912. access 'read write'
  913. type INTEGER
  914. count 1
  915. range '0 - 15'
  916. dbmin -1500
  917. dbmax 0
  918. dbvalue.0 0
  919. }
  920. }
  921. control.37 {
  922. iface MIXER
  923. name 'ALC Enable'
  924. value false
  925. comment {
  926. access 'read write'
  927. type BOOLEAN
  928. count 1
  929. }
  930. }
  931. control.38 {
  932. iface MIXER
  933. name 'ALC Attack Time'
  934. value '0.5ms'
  935. comment {
  936. access 'read write'
  937. type ENUMERATED
  938. count 1
  939. item.0 '0.5ms'
  940. item.1 '1ms'
  941. item.2 '5ms'
  942. item.3 '10ms'
  943. item.4 '25ms'
  944. item.5 '50ms'
  945. item.6 '100ms'
  946. item.7 '200ms'
  947. }
  948. }
  949. control.39 {
  950. iface MIXER
  951. name 'ALC Release Time'
  952. value '8s'
  953. comment {
  954. access 'read write'
  955. type ENUMERATED
  956. count 1
  957. item.0 '8s'
  958. item.1 '4s'
  959. item.2 '2s'
  960. item.3 '1s'
  961. item.4 '0.5s'
  962. item.5 '0.25s'
  963. item.6 '0.125s'
  964. item.7 '0.0625s'
  965. }
  966. }
  967. control.40 {
  968. iface MIXER
  969. name 'ALC Make Up Volume'
  970. value 0
  971. comment {
  972. access 'read write'
  973. type INTEGER
  974. count 1
  975. range '0 - 12'
  976. dbmin 0
  977. dbmax 1200
  978. dbvalue.0 0
  979. }
  980. }
  981. control.41 {
  982. iface MIXER
  983. name 'ALC Compression Ratio'
  984. value '1:1'
  985. comment {
  986. access 'read write'
  987. type ENUMERATED
  988. count 1
  989. item.0 '1:1'
  990. item.1 '1:1.5'
  991. item.2 '1:2'
  992. item.3 '1:4'
  993. item.4 '1:INF'
  994. }
  995. }
  996. control.42 {
  997. iface MIXER
  998. name 'ALC Expansion Ratio'
  999. value '1:1'
  1000. comment {
  1001. access 'read write'
  1002. type ENUMERATED
  1003. count 1
  1004. item.0 '1:1'
  1005. item.1 '2:1'
  1006. item.2 '3:1'
  1007. }
  1008. }
  1009. control.43 {
  1010. iface MIXER
  1011. name 'ALC Compression Threshold Volume'
  1012. value 31
  1013. comment {
  1014. access 'read write'
  1015. type INTEGER
  1016. count 1
  1017. range '0 - 31'
  1018. dbmin -3100
  1019. dbmax 0
  1020. dbvalue.0 0
  1021. }
  1022. }
  1023. control.44 {
  1024. iface MIXER
  1025. name 'ALC Expansion Threshold Volume'
  1026. value 31
  1027. comment {
  1028. access 'read write'
  1029. type INTEGER
  1030. count 1
  1031. range '0 - 31'
  1032. dbmin -6600
  1033. dbmax -3500
  1034. dbvalue.0 -3500
  1035. }
  1036. }
  1037. control.45 {
  1038. iface MIXER
  1039. name 'DAC HP Playback Performance Mode'
  1040. value 'High Performance'
  1041. comment {
  1042. access 'read write'
  1043. type ENUMERATED
  1044. count 1
  1045. item.0 'High Performance'
  1046. item.1 'Low Power'
  1047. }
  1048. }
  1049. control.46 {
  1050. iface MIXER
  1051. name 'DAC High Performance Mode'
  1052. value 'High Performance'
  1053. comment {
  1054. access 'read write'
  1055. type ENUMERATED
  1056. count 1
  1057. item.0 'Low Power'
  1058. item.1 'High Performance'
  1059. }
  1060. }
  1061. control.47 {
  1062. iface MIXER
  1063. name 'Headphone Left Mixer Volume'
  1064. value 3
  1065. comment {
  1066. access 'read write'
  1067. type INTEGER
  1068. count 1
  1069. range '0 - 3'
  1070. dbmin -1200
  1071. dbmax 0
  1072. dbvalue.0 0
  1073. }
  1074. }
  1075. control.48 {
  1076. iface MIXER
  1077. name 'Headphone Right Mixer Volume'
  1078. value 3
  1079. comment {
  1080. access 'read write'
  1081. type INTEGER
  1082. count 1
  1083. range '0 - 3'
  1084. dbmin -1200
  1085. dbmax 0
  1086. dbvalue.0 0
  1087. }
  1088. }
  1089. control.49 {
  1090. iface MIXER
  1091. name 'Speaker Left Mixer Volume'
  1092. value 3
  1093. comment {
  1094. access 'read write'
  1095. type INTEGER
  1096. count 1
  1097. range '0 - 3'
  1098. dbmin -1200
  1099. dbmax 0
  1100. dbvalue.0 0
  1101. }
  1102. }
  1103. control.50 {
  1104. iface MIXER
  1105. name 'Speaker Right Mixer Volume'
  1106. value 3
  1107. comment {
  1108. access 'read write'
  1109. type INTEGER
  1110. count 1
  1111. range '0 - 3'
  1112. dbmin -1200
  1113. dbmax 0
  1114. dbvalue.0 0
  1115. }
  1116. }
  1117. control.51 {
  1118. iface MIXER
  1119. name 'Receiver Left Mixer Volume'
  1120. value 3
  1121. comment {
  1122. access 'read write'
  1123. type INTEGER
  1124. count 1
  1125. range '0 - 3'
  1126. dbmin -1200
  1127. dbmax 0
  1128. dbvalue.0 0
  1129. }
  1130. }
  1131. control.52 {
  1132. iface MIXER
  1133. name 'Receiver Right Mixer Volume'
  1134. value 3
  1135. comment {
  1136. access 'read write'
  1137. type INTEGER
  1138. count 1
  1139. range '0 - 3'
  1140. dbmin -1200
  1141. dbmax 0
  1142. dbvalue.0 0
  1143. }
  1144. }
  1145. control.53 {
  1146. iface MIXER
  1147. name 'Headphone Volume'
  1148. value.0 26
  1149. value.1 26
  1150. comment {
  1151. access 'read write'
  1152. type INTEGER
  1153. count 2
  1154. range '0 - 31'
  1155. dbmin -6700
  1156. dbmax 300
  1157. dbvalue.0 0
  1158. dbvalue.1 0
  1159. }
  1160. }
  1161. control.54 {
  1162. iface MIXER
  1163. name 'Speaker Volume'
  1164. value.0 20
  1165. value.1 20
  1166. comment {
  1167. access 'read write'
  1168. type INTEGER
  1169. count 2
  1170. range '0 - 39'
  1171. dbmin -4800
  1172. dbmax 1400
  1173. dbvalue.0 0
  1174. dbvalue.1 0
  1175. }
  1176. }
  1177. control.55 {
  1178. iface MIXER
  1179. name 'Receiver Volume'
  1180. value.0 21
  1181. value.1 21
  1182. comment {
  1183. access 'read write'
  1184. type INTEGER
  1185. count 2
  1186. range '0 - 31'
  1187. dbmin -6200
  1188. dbmax 800
  1189. dbvalue.0 0
  1190. dbvalue.1 0
  1191. }
  1192. }
  1193. control.56 {
  1194. iface MIXER
  1195. name 'Headphone Left Switch'
  1196. value true
  1197. comment {
  1198. access 'read write'
  1199. type BOOLEAN
  1200. count 1
  1201. }
  1202. }
  1203. control.57 {
  1204. iface MIXER
  1205. name 'Headphone Right Switch'
  1206. value true
  1207. comment {
  1208. access 'read write'
  1209. type BOOLEAN
  1210. count 1
  1211. }
  1212. }
  1213. control.58 {
  1214. iface MIXER
  1215. name 'Speaker Left Switch'
  1216. value true
  1217. comment {
  1218. access 'read write'
  1219. type BOOLEAN
  1220. count 1
  1221. }
  1222. }
  1223. control.59 {
  1224. iface MIXER
  1225. name 'Speaker Right Switch'
  1226. value true
  1227. comment {
  1228. access 'read write'
  1229. type BOOLEAN
  1230. count 1
  1231. }
  1232. }
  1233. control.60 {
  1234. iface MIXER
  1235. name 'Receiver Left Switch'
  1236. value true
  1237. comment {
  1238. access 'read write'
  1239. type BOOLEAN
  1240. count 1
  1241. }
  1242. }
  1243. control.61 {
  1244. iface MIXER
  1245. name 'Receiver Right Switch'
  1246. value true
  1247. comment {
  1248. access 'read write'
  1249. type BOOLEAN
  1250. count 1
  1251. }
  1252. }
  1253. control.62 {
  1254. iface MIXER
  1255. name 'Zero-Crossing Detection'
  1256. value true
  1257. comment {
  1258. access 'read write'
  1259. type BOOLEAN
  1260. count 1
  1261. }
  1262. }
  1263. control.63 {
  1264. iface MIXER
  1265. name 'Enhanced Vol Smoothing'
  1266. value true
  1267. comment {
  1268. access 'read write'
  1269. type BOOLEAN
  1270. count 1
  1271. }
  1272. }
  1273. control.64 {
  1274. iface MIXER
  1275. name 'Volume Adjustment Smoothing'
  1276. value true
  1277. comment {
  1278. access 'read write'
  1279. type BOOLEAN
  1280. count 1
  1281. }
  1282. }
  1283. control.65 {
  1284. iface MIXER
  1285. name 'Biquad Coefficients'
  1286. value '000000000000000000000000000000'
  1287. comment {
  1288. access 'read write'
  1289. type BYTES
  1290. count 15
  1291. }
  1292. }
  1293. control.66 {
  1294. iface MIXER
  1295. name 'Biquad Switch'
  1296. value false
  1297. comment {
  1298. access 'read write'
  1299. type BOOLEAN
  1300. count 1
  1301. }
  1302. }
  1303. control.67 {
  1304. iface MIXER
  1305. name 'HP Right Out Switch'
  1306. value false
  1307. comment {
  1308. access 'read write'
  1309. type BOOLEAN
  1310. count 1
  1311. }
  1312. }
  1313. control.68 {
  1314. iface MIXER
  1315. name 'HP Left Out Switch'
  1316. value false
  1317. comment {
  1318. access 'read write'
  1319. type BOOLEAN
  1320. count 1
  1321. }
  1322. }
  1323. control.69 {
  1324. iface MIXER
  1325. name 'MIXHPRSEL Mux'
  1326. value 'DAC Only'
  1327. comment {
  1328. access 'read write'
  1329. type ENUMERATED
  1330. count 1
  1331. item.0 'DAC Only'
  1332. item.1 'HP Mixer'
  1333. }
  1334. }
  1335. control.70 {
  1336. iface MIXER
  1337. name 'MIXHPLSEL Mux'
  1338. value 'DAC Only'
  1339. comment {
  1340. access 'read write'
  1341. type ENUMERATED
  1342. count 1
  1343. item.0 'DAC Only'
  1344. item.1 'HP Mixer'
  1345. }
  1346. }
  1347. control.71 {
  1348. iface MIXER
  1349. name 'LINMOD Mux'
  1350. value 'Left Only'
  1351. comment {
  1352. access 'read write'
  1353. type ENUMERATED
  1354. count 1
  1355. item.0 'Left Only'
  1356. item.1 'Left and Right'
  1357. }
  1358. }
  1359. control.72 {
  1360. iface MIXER
  1361. name 'Right Receiver Mixer Left DAC Switch'
  1362. value false
  1363. comment {
  1364. access 'read write'
  1365. type BOOLEAN
  1366. count 1
  1367. }
  1368. }
  1369. control.73 {
  1370. iface MIXER
  1371. name 'Right Receiver Mixer Right DAC Switch'
  1372. value false
  1373. comment {
  1374. access 'read write'
  1375. type BOOLEAN
  1376. count 1
  1377. }
  1378. }
  1379. control.74 {
  1380. iface MIXER
  1381. name 'Right Receiver Mixer LINEA Switch'
  1382. value false
  1383. comment {
  1384. access 'read write'
  1385. type BOOLEAN
  1386. count 1
  1387. }
  1388. }
  1389. control.75 {
  1390. iface MIXER
  1391. name 'Right Receiver Mixer LINEB Switch'
  1392. value false
  1393. comment {
  1394. access 'read write'
  1395. type BOOLEAN
  1396. count 1
  1397. }
  1398. }
  1399. control.76 {
  1400. iface MIXER
  1401. name 'Right Receiver Mixer MIC1 Switch'
  1402. value false
  1403. comment {
  1404. access 'read write'
  1405. type BOOLEAN
  1406. count 1
  1407. }
  1408. }
  1409. control.77 {
  1410. iface MIXER
  1411. name 'Right Receiver Mixer MIC2 Switch'
  1412. value false
  1413. comment {
  1414. access 'read write'
  1415. type BOOLEAN
  1416. count 1
  1417. }
  1418. }
  1419. control.78 {
  1420. iface MIXER
  1421. name 'Left Receiver Mixer Left DAC Switch'
  1422. value false
  1423. comment {
  1424. access 'read write'
  1425. type BOOLEAN
  1426. count 1
  1427. }
  1428. }
  1429. control.79 {
  1430. iface MIXER
  1431. name 'Left Receiver Mixer Right DAC Switch'
  1432. value false
  1433. comment {
  1434. access 'read write'
  1435. type BOOLEAN
  1436. count 1
  1437. }
  1438. }
  1439. control.80 {
  1440. iface MIXER
  1441. name 'Left Receiver Mixer LINEA Switch'
  1442. value false
  1443. comment {
  1444. access 'read write'
  1445. type BOOLEAN
  1446. count 1
  1447. }
  1448. }
  1449. control.81 {
  1450. iface MIXER
  1451. name 'Left Receiver Mixer LINEB Switch'
  1452. value false
  1453. comment {
  1454. access 'read write'
  1455. type BOOLEAN
  1456. count 1
  1457. }
  1458. }
  1459. control.82 {
  1460. iface MIXER
  1461. name 'Left Receiver Mixer MIC1 Switch'
  1462. value false
  1463. comment {
  1464. access 'read write'
  1465. type BOOLEAN
  1466. count 1
  1467. }
  1468. }
  1469. control.83 {
  1470. iface MIXER
  1471. name 'Left Receiver Mixer MIC2 Switch'
  1472. value false
  1473. comment {
  1474. access 'read write'
  1475. type BOOLEAN
  1476. count 1
  1477. }
  1478. }
  1479. control.84 {
  1480. iface MIXER
  1481. name 'Right Speaker Mixer Left DAC Switch'
  1482. value false
  1483. comment {
  1484. access 'read write'
  1485. type BOOLEAN
  1486. count 1
  1487. }
  1488. }
  1489. control.85 {
  1490. iface MIXER
  1491. name 'Right Speaker Mixer Right DAC Switch'
  1492. value true
  1493. comment {
  1494. access 'read write'
  1495. type BOOLEAN
  1496. count 1
  1497. }
  1498. }
  1499. control.86 {
  1500. iface MIXER
  1501. name 'Right Speaker Mixer LINEA Switch'
  1502. value false
  1503. comment {
  1504. access 'read write'
  1505. type BOOLEAN
  1506. count 1
  1507. }
  1508. }
  1509. control.87 {
  1510. iface MIXER
  1511. name 'Right Speaker Mixer LINEB Switch'
  1512. value false
  1513. comment {
  1514. access 'read write'
  1515. type BOOLEAN
  1516. count 1
  1517. }
  1518. }
  1519. control.88 {
  1520. iface MIXER
  1521. name 'Right Speaker Mixer MIC1 Switch'
  1522. value false
  1523. comment {
  1524. access 'read write'
  1525. type BOOLEAN
  1526. count 1
  1527. }
  1528. }
  1529. control.89 {
  1530. iface MIXER
  1531. name 'Right Speaker Mixer MIC2 Switch'
  1532. value false
  1533. comment {
  1534. access 'read write'
  1535. type BOOLEAN
  1536. count 1
  1537. }
  1538. }
  1539. control.90 {
  1540. iface MIXER
  1541. name 'Left Speaker Mixer Left DAC Switch'
  1542. value true
  1543. comment {
  1544. access 'read write'
  1545. type BOOLEAN
  1546. count 1
  1547. }
  1548. }
  1549. control.91 {
  1550. iface MIXER
  1551. name 'Left Speaker Mixer Right DAC Switch'
  1552. value false
  1553. comment {
  1554. access 'read write'
  1555. type BOOLEAN
  1556. count 1
  1557. }
  1558. }
  1559. control.92 {
  1560. iface MIXER
  1561. name 'Left Speaker Mixer LINEA Switch'
  1562. value false
  1563. comment {
  1564. access 'read write'
  1565. type BOOLEAN
  1566. count 1
  1567. }
  1568. }
  1569. control.93 {
  1570. iface MIXER
  1571. name 'Left Speaker Mixer LINEB Switch'
  1572. value false
  1573. comment {
  1574. access 'read write'
  1575. type BOOLEAN
  1576. count 1
  1577. }
  1578. }
  1579. control.94 {
  1580. iface MIXER
  1581. name 'Left Speaker Mixer MIC1 Switch'
  1582. value false
  1583. comment {
  1584. access 'read write'
  1585. type BOOLEAN
  1586. count 1
  1587. }
  1588. }
  1589. control.95 {
  1590. iface MIXER
  1591. name 'Left Speaker Mixer MIC2 Switch'
  1592. value false
  1593. comment {
  1594. access 'read write'
  1595. type BOOLEAN
  1596. count 1
  1597. }
  1598. }
  1599. control.96 {
  1600. iface MIXER
  1601. name 'Right Headphone Mixer Left DAC Switch'
  1602. value false
  1603. comment {
  1604. access 'read write'
  1605. type BOOLEAN
  1606. count 1
  1607. }
  1608. }
  1609. control.97 {
  1610. iface MIXER
  1611. name 'Right Headphone Mixer Right DAC Switch'
  1612. value false
  1613. comment {
  1614. access 'read write'
  1615. type BOOLEAN
  1616. count 1
  1617. }
  1618. }
  1619. control.98 {
  1620. iface MIXER
  1621. name 'Right Headphone Mixer LINEA Switch'
  1622. value false
  1623. comment {
  1624. access 'read write'
  1625. type BOOLEAN
  1626. count 1
  1627. }
  1628. }
  1629. control.99 {
  1630. iface MIXER
  1631. name 'Right Headphone Mixer LINEB Switch'
  1632. value false
  1633. comment {
  1634. access 'read write'
  1635. type BOOLEAN
  1636. count 1
  1637. }
  1638. }
  1639. control.100 {
  1640. iface MIXER
  1641. name 'Right Headphone Mixer MIC1 Switch'
  1642. value false
  1643. comment {
  1644. access 'read write'
  1645. type BOOLEAN
  1646. count 1
  1647. }
  1648. }
  1649. control.101 {
  1650. iface MIXER
  1651. name 'Right Headphone Mixer MIC2 Switch'
  1652. value false
  1653. comment {
  1654. access 'read write'
  1655. type BOOLEAN
  1656. count 1
  1657. }
  1658. }
  1659. control.102 {
  1660. iface MIXER
  1661. name 'Left Headphone Mixer Left DAC Switch'
  1662. value false
  1663. comment {
  1664. access 'read write'
  1665. type BOOLEAN
  1666. count 1
  1667. }
  1668. }
  1669. control.103 {
  1670. iface MIXER
  1671. name 'Left Headphone Mixer Right DAC Switch'
  1672. value false
  1673. comment {
  1674. access 'read write'
  1675. type BOOLEAN
  1676. count 1
  1677. }
  1678. }
  1679. control.104 {
  1680. iface MIXER
  1681. name 'Left Headphone Mixer LINEA Switch'
  1682. value false
  1683. comment {
  1684. access 'read write'
  1685. type BOOLEAN
  1686. count 1
  1687. }
  1688. }
  1689. control.105 {
  1690. iface MIXER
  1691. name 'Left Headphone Mixer LINEB Switch'
  1692. value false
  1693. comment {
  1694. access 'read write'
  1695. type BOOLEAN
  1696. count 1
  1697. }
  1698. }
  1699. control.106 {
  1700. iface MIXER
  1701. name 'Left Headphone Mixer MIC1 Switch'
  1702. value false
  1703. comment {
  1704. access 'read write'
  1705. type BOOLEAN
  1706. count 1
  1707. }
  1708. }
  1709. control.107 {
  1710. iface MIXER
  1711. name 'Left Headphone Mixer MIC2 Switch'
  1712. value false
  1713. comment {
  1714. access 'read write'
  1715. type BOOLEAN
  1716. count 1
  1717. }
  1718. }
  1719. control.108 {
  1720. iface MIXER
  1721. name 'STENR Mux'
  1722. value Normal
  1723. comment {
  1724. access 'read write'
  1725. type ENUMERATED
  1726. count 1
  1727. item.0 Normal
  1728. item.1 'Sidetone Right'
  1729. }
  1730. }
  1731. control.109 {
  1732. iface MIXER
  1733. name 'STENL Mux'
  1734. value Normal
  1735. comment {
  1736. access 'read write'
  1737. type ENUMERATED
  1738. count 1
  1739. item.0 Normal
  1740. item.1 'Sidetone Left'
  1741. }
  1742. }
  1743. control.110 {
  1744. iface MIXER
  1745. name 'LTENR Mux'
  1746. value Normal
  1747. comment {
  1748. access 'read write'
  1749. type ENUMERATED
  1750. count 1
  1751. item.0 Normal
  1752. item.1 Loopthrough
  1753. }
  1754. }
  1755. control.111 {
  1756. iface MIXER
  1757. name 'LTENL Mux'
  1758. value Normal
  1759. comment {
  1760. access 'read write'
  1761. type ENUMERATED
  1762. count 1
  1763. item.0 Normal
  1764. item.1 Loopthrough
  1765. }
  1766. }
  1767. control.112 {
  1768. iface MIXER
  1769. name 'LBENR Mux'
  1770. value Normal
  1771. comment {
  1772. access 'read write'
  1773. type ENUMERATED
  1774. count 1
  1775. item.0 Normal
  1776. item.1 Loopback
  1777. }
  1778. }
  1779. control.113 {
  1780. iface MIXER
  1781. name 'LBENL Mux'
  1782. value Normal
  1783. comment {
  1784. access 'read write'
  1785. type ENUMERATED
  1786. count 1
  1787. item.0 Normal
  1788. item.1 Loopback
  1789. }
  1790. }
  1791. control.114 {
  1792. iface MIXER
  1793. name 'Right ADC Mixer IN12 Switch'
  1794. value false
  1795. comment {
  1796. access 'read write'
  1797. type BOOLEAN
  1798. count 1
  1799. }
  1800. }
  1801. control.115 {
  1802. iface MIXER
  1803. name 'Right ADC Mixer IN34 Switch'
  1804. value false
  1805. comment {
  1806. access 'read write'
  1807. type BOOLEAN
  1808. count 1
  1809. }
  1810. }
  1811. control.116 {
  1812. iface MIXER
  1813. name 'Right ADC Mixer IN56 Switch'
  1814. value false
  1815. comment {
  1816. access 'read write'
  1817. type BOOLEAN
  1818. count 1
  1819. }
  1820. }
  1821. control.117 {
  1822. iface MIXER
  1823. name 'Right ADC Mixer LINEA Switch'
  1824. value false
  1825. comment {
  1826. access 'read write'
  1827. type BOOLEAN
  1828. count 1
  1829. }
  1830. }
  1831. control.118 {
  1832. iface MIXER
  1833. name 'Right ADC Mixer LINEB Switch'
  1834. value false
  1835. comment {
  1836. access 'read write'
  1837. type BOOLEAN
  1838. count 1
  1839. }
  1840. }
  1841. control.119 {
  1842. iface MIXER
  1843. name 'Right ADC Mixer MIC1 Switch'
  1844. value false
  1845. comment {
  1846. access 'read write'
  1847. type BOOLEAN
  1848. count 1
  1849. }
  1850. }
  1851. control.120 {
  1852. iface MIXER
  1853. name 'Right ADC Mixer MIC2 Switch'
  1854. value false
  1855. comment {
  1856. access 'read write'
  1857. type BOOLEAN
  1858. count 1
  1859. }
  1860. }
  1861. control.121 {
  1862. iface MIXER
  1863. name 'Left ADC Mixer IN12 Switch'
  1864. value false
  1865. comment {
  1866. access 'read write'
  1867. type BOOLEAN
  1868. count 1
  1869. }
  1870. }
  1871. control.122 {
  1872. iface MIXER
  1873. name 'Left ADC Mixer IN34 Switch'
  1874. value false
  1875. comment {
  1876. access 'read write'
  1877. type BOOLEAN
  1878. count 1
  1879. }
  1880. }
  1881. control.123 {
  1882. iface MIXER
  1883. name 'Left ADC Mixer IN56 Switch'
  1884. value false
  1885. comment {
  1886. access 'read write'
  1887. type BOOLEAN
  1888. count 1
  1889. }
  1890. }
  1891. control.124 {
  1892. iface MIXER
  1893. name 'Left ADC Mixer LINEA Switch'
  1894. value false
  1895. comment {
  1896. access 'read write'
  1897. type BOOLEAN
  1898. count 1
  1899. }
  1900. }
  1901. control.125 {
  1902. iface MIXER
  1903. name 'Left ADC Mixer LINEB Switch'
  1904. value false
  1905. comment {
  1906. access 'read write'
  1907. type BOOLEAN
  1908. count 1
  1909. }
  1910. }
  1911. control.126 {
  1912. iface MIXER
  1913. name 'Left ADC Mixer MIC1 Switch'
  1914. value false
  1915. comment {
  1916. access 'read write'
  1917. type BOOLEAN
  1918. count 1
  1919. }
  1920. }
  1921. control.127 {
  1922. iface MIXER
  1923. name 'Left ADC Mixer MIC2 Switch'
  1924. value false
  1925. comment {
  1926. access 'read write'
  1927. type BOOLEAN
  1928. count 1
  1929. }
  1930. }
  1931. control.128 {
  1932. iface MIXER
  1933. name 'LINEB Mixer IN2 Switch'
  1934. value false
  1935. comment {
  1936. access 'read write'
  1937. type BOOLEAN
  1938. count 1
  1939. }
  1940. }
  1941. control.129 {
  1942. iface MIXER
  1943. name 'LINEB Mixer IN4 Switch'
  1944. value false
  1945. comment {
  1946. access 'read write'
  1947. type BOOLEAN
  1948. count 1
  1949. }
  1950. }
  1951. control.130 {
  1952. iface MIXER
  1953. name 'LINEB Mixer IN6 Switch'
  1954. value false
  1955. comment {
  1956. access 'read write'
  1957. type BOOLEAN
  1958. count 1
  1959. }
  1960. }
  1961. control.131 {
  1962. iface MIXER
  1963. name 'LINEB Mixer IN56 Switch'
  1964. value false
  1965. comment {
  1966. access 'read write'
  1967. type BOOLEAN
  1968. count 1
  1969. }
  1970. }
  1971. control.132 {
  1972. iface MIXER
  1973. name 'LINEA Mixer IN1 Switch'
  1974. value false
  1975. comment {
  1976. access 'read write'
  1977. type BOOLEAN
  1978. count 1
  1979. }
  1980. }
  1981. control.133 {
  1982. iface MIXER
  1983. name 'LINEA Mixer IN3 Switch'
  1984. value false
  1985. comment {
  1986. access 'read write'
  1987. type BOOLEAN
  1988. count 1
  1989. }
  1990. }
  1991. control.134 {
  1992. iface MIXER
  1993. name 'LINEA Mixer IN5 Switch'
  1994. value false
  1995. comment {
  1996. access 'read write'
  1997. type BOOLEAN
  1998. count 1
  1999. }
  2000. }
  2001. control.135 {
  2002. iface MIXER
  2003. name 'LINEA Mixer IN34 Switch'
  2004. value false
  2005. comment {
  2006. access 'read write'
  2007. type BOOLEAN
  2008. count 1
  2009. }
  2010. }
  2011. control.136 {
  2012. iface MIXER
  2013. name 'DMIC Mux'
  2014. value ADC
  2015. comment {
  2016. access 'read write'
  2017. type ENUMERATED
  2018. count 1
  2019. item.0 ADC
  2020. item.1 DMIC
  2021. }
  2022. }
  2023. control.137 {
  2024. iface MIXER
  2025. name 'MIC2 Mux'
  2026. value IN34
  2027. comment {
  2028. access 'read write'
  2029. type ENUMERATED
  2030. count 1
  2031. item.0 IN34
  2032. item.1 IN56
  2033. }
  2034. }
  2035. control.138 {
  2036. iface MIXER
  2037. name 'MIC1 Mux'
  2038. value IN12
  2039. comment {
  2040. access 'read write'
  2041. type ENUMERATED
  2042. count 1
  2043. item.0 IN12
  2044. item.1 IN56
  2045. }
  2046. }
  2047. control.139 {
  2048. iface MIXER
  2049. name 'Speakers Switch'
  2050. value true
  2051. comment {
  2052. access 'read write'
  2053. type BOOLEAN
  2054. count 1
  2055. }
  2056. }
  2057. control.140 {
  2058. iface MIXER
  2059. name 'Headphone Jack Switch'
  2060. value false
  2061. comment {
  2062. access 'read write'
  2063. type BOOLEAN
  2064. count 1
  2065. }
  2066. }
  2067. control.141 {
  2068. iface MIXER
  2069. name 'Mic Jack Switch'
  2070. value false
  2071. comment {
  2072. access 'read write'
  2073. type BOOLEAN
  2074. count 1
  2075. }
  2076. }
  2077. control.142 {
  2078. iface MIXER
  2079. name 'Int Mic Switch'
  2080. value true
  2081. comment {
  2082. access 'read write'
  2083. type BOOLEAN
  2084. count 1
  2085. }
  2086. }
  2087. }
  2088. EOF
  2089.  
  2090. cat > /tmp/urfs/install-tegra.sh <<EOF
  2091. 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
  2092. 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
  2093. ldconfig
  2094. adduser user video
  2095. EOF
  2096. #su user -c "xdg-settings set default-web-browser chromium.desktop"
  2097.  
  2098. chmod a+x /tmp/urfs/install-tegra.sh
  2099. chroot /tmp/urfs /bin/bash -c /install-tegra.sh
  2100. rm /tmp/urfs/install-tegra.sh
  2101.  
  2102. echo "console=tty1 debug verbose root=${target_rootfs} rootwait rw lsm.module_locking=0" > kernel-config
  2103. vbutil_arch="x86"
  2104. if [ $ubuntu_arch = "armhf" ]
  2105. then
  2106. vbutil_arch="arm"
  2107. fi
  2108.  
  2109. current_rootfs="`rootdev -s`"
  2110. current_kernfs_num=$((${current_rootfs: -1:1}-1))
  2111. current_kernfs=${current_rootfs: 0:-1}$current_kernfs_num
  2112.  
  2113. vbutil_kernel --repack ${target_kern} \
  2114. --oldblob $current_kernfs \
  2115. --keyblock /usr/share/vboot/devkeys/kernel.keyblock \
  2116. --version 1 \
  2117. --signprivate /usr/share/vboot/devkeys/kernel_data_key.vbprivk \
  2118. --config kernel-config \
  2119. --arch $vbutil_arch
  2120.  
  2121. #Set Ubuntu kernel partition as top priority for next boot (and next boot only)
  2122. cgpt add -i 6 -P 5 -T 1 ${target_disk}
  2123.  
  2124. echo -e "
  2125.  
  2126. Installation seems to be complete. If ChrUbuntu fails when you reboot,
  2127. power off your Chrome OS device and then turn it back on. You'll be back
  2128. in Chrome OS. If you're happy with ChrUbuntu when you reboot be sure to run:
  2129.  
  2130. sudo cgpt add -i 6 -P 5 -S 1 ${target_disk}
  2131.  
  2132. To make it the default boot option. The ChrUbuntu login is:
  2133.  
  2134. Username: user
  2135. Password: user
  2136.  
  2137. We're now ready to start ChrUbuntu!
  2138. "
  2139.  
  2140. read -p "Press [Enter] to reboot..."
  2141.  
  2142. reboot
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement