Advertisement
Guest User

Untitled

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