Advertisement
Avogarados

Untitled

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