Advertisement
Guest User

Untitled

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