Advertisement
Guest User

Untitled

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