Advertisement
Guest User

Untitled

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