|
|
|
@ -0,0 +1,336 @@
|
|
|
|
|
diff --git data/handbook-ru.html data/handbook-ru.html
|
|
|
|
|
index 16796db..27ad80f 100644
|
|
|
|
|
--- data/handbook-ru.html
|
|
|
|
|
+++ data/handbook-ru.html
|
|
|
|
|
@@ -1,4 +1,4 @@
|
|
|
|
|
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
|
|
|
|
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
|
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
|
|
|
|
|
<head>
|
|
|
|
|
<title>handbook</title>
|
|
|
|
|
@@ -15,9 +15,8 @@ a.wiki-anchor:hover { color: #aaa !important; text-decoration: none; }
|
|
|
|
|
h1:hover a.wiki-anchor, h2:hover a.wiki-anchor, h3:hover a.wiki-anchor { display: inline; color: #ddd; }
|
|
|
|
|
pre {font-size:133% }
|
|
|
|
|
</style>
|
|
|
|
|
-</head>
|
|
|
|
|
<body>
|
|
|
|
|
-<h1 id="Краткое-руководство-по-установке">Краткое руководство по установке<a href="#Краткое-руководство-по-установке" class="wiki-anchor">¶</a></h1>
|
|
|
|
|
+ <h1 id="Краткое-руководство-по-установке">Краткое руководство по установке<a href="#Краткое-руководство-по-установке" class="wiki-anchor">¶</a></h1>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<h2 id="Благодарим-за-использование-Calculate-Linux">Благодарим за использование Calculate Linux!<a href="#Благодарим-за-использование-Calculate-Linux" class="wiki-anchor">¶</a></h2>
|
|
|
|
|
@@ -44,12 +43,15 @@ pre {font-size:133% }
|
|
|
|
|
<h2 id="Настройка-сети">Настройка сети<a href="#Настройка-сети" class="wiki-anchor">¶</a></h2>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- <p>Настройку сети в CLD, CLDG и CLDX выполняет <em>Networkmanager</em>. Программа имеет графический интерфейс, при помощи которого можно настроить как проводную, так и беспроводную сеть. При загрузке программа попытается настроить сетевой интерфейс и получить IP-адрес от DHCP-сервера. Доступ к программе можно получить, кликнув по иконке в правом верхнем углу экрана.</p>
|
|
|
|
|
+Настройка сети в Calculate Linux осуществляется с помощью сервера утилит Calculate. Как и все действия сервера утилит, настройку сети можно выполнить несколькими способами.
|
|
|
|
|
+ <ul>
|
|
|
|
|
+ <li>используя графический клиент;</li>
|
|
|
|
|
+ <li>используя консольный клиент;</li>
|
|
|
|
|
+ <li>используя сервер утилит.</li>
|
|
|
|
|
+ </ul>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- <p>Настройка сети в CLS, CDS и CSS осуществляется путем редактирования конфигурационного файла <code>/etc/conf.d/net</code>. Справку по настройке сети можно найти в файле <code>/usr/share/doc/openrc-0.6.x/net.example</code>. После изменения настроек нужно перезапустить сетевой интерфейс (как правило, eth0 для проводной сети):<br /><pre>
|
|
|
|
|
-/etc/init.d/net.eth0 restart
|
|
|
|
|
-</pre></p>
|
|
|
|
|
+ <p>Подробнее в разделе <a href="/main/ru/setup_network" class="wiki-page">Настройка сети</a>.</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<h2 id="Разбивка-диска">Разбивка диска<a href="#Разбивка-диска" class="wiki-anchor">¶</a></h2>
|
|
|
|
|
@@ -58,7 +60,7 @@ pre {font-size:133% }
|
|
|
|
|
<p>Перед установкой вам может понадобиться изменить разделы жесткого диска. Для установки CLD, CLDG и CLDX мы рекомендуем использовать раздел не менее 10 Гб. Более подробно аппаратные требования можно узнать <a href="http://www.calculate-linux.ru/main/ru/hardware_requirements" class="external">здесь</a>. Раздел подкачки (swap), как правило, выделяется вдвое большим размера оперативной памяти. Если раздел под swap уже существует, система будет использовать его. Полезно иметь отдельный раздел для личных файлов (<code>/home</code>). Наши рекомендации по разбиению диска описаны <a href="http://www.calculate-linux.ru/main/ru/disk_partitioning" class="external">здесь</a>.</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- <p>В CLD для изменения разделов диска используется программа <em>Partitionmanager</em>, в CLDG и CLDX - <em>Gparted</em>. Вы также можете выполнить разбиение диска в графическом установщике, средствами утилиты <em>cfdisk</em>. В CDS, CSS и CLS входят только консольные утилиты: <em>fdisk</em> или <em>cfdisk</em>.</p>
|
|
|
|
|
+ <p>В CLD, CLDG и CLDX для изменения разделов диска используется программа <em>Gparted</em>. В CDS, CSS и CLS входят только консольные утилиты: <em>fdisk</em>,<em>gdisk</em> или <em>cfdisk</em>.</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<p>Чтобы просмотреть список существующих разделов, откройте консоль с правами пользователя <em>root</em> и наберите:<br /><pre>
|
|
|
|
|
@@ -75,42 +77,29 @@ fdisk -l
|
|
|
|
|
<p>Вы также можете воспользоваться уже готовым разделом либо создать его из <em>Windows</em>. Чтобы правильно определить выбранный раздел в Linux, запомните очередность его расположения и размер. Как правило, диску C:\ соответствует sda1, диску D:\ - sda2.</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- <p><h2 id="Установка">Установка<a href="#Установка" class="wiki-anchor">¶</a></h2>
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- <p>Установка Calculate Linux 10.9 и выше выполняется программой <code>cl-install</code>. В дистрибутивах CLD, CLDG и CLDX есть графический установщик <code>cl-install-gui</code>. Программу можно запустить, кликнув по иконке "Установка Calculate Linux" на рабочем столе.</p>
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- <p>Для установки утилитой <code>cl-install</code> во второй раздел жесткого диска, выполните из консоли с правами <em>root</em>:<br /><pre>
|
|
|
|
|
-cl-install -d /dev/sda2
|
|
|
|
|
-</pre></p>
|
|
|
|
|
+ <p><h2 id="Варианты-установки">Варианты установки<a href="#Варианты-установки" class="wiki-anchor">¶</a></h2>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-Список наиболее часто используемых параметров:
|
|
|
|
|
+Установить систему Calculate Linux вы можете одним из перечисленных способов:
|
|
|
|
|
<ul>
|
|
|
|
|
- <li><strong>--hostname HOSTNAME</strong> - установить короткое или полное имя хоста;</li>
|
|
|
|
|
- <li><strong>-l</strong> - язык системы, поддерживаются: ru_RU - русский, uk_UA - украинский, en_US - американский английский, bg_BG - болгарский, de_DE - немецкий, es_ES - испанский, it_IT - итальянский, pl_PL - польский, pt_BR - португальский и fr_FR - французский;</li>
|
|
|
|
|
- <li><strong>--mbr DEVICE</strong> - диск с главной загрузочной записью, значение 'off' отключает изменение.</li>
|
|
|
|
|
+ <li>графическим клиентом <a href="/main/ru/calculate-console-gui" class="wiki-page">cl-console-gui</a>;</li>
|
|
|
|
|
+ <li>консольным клиентом <a href="/main/ru/calculate-console" class="wiki-page">cl-console</a>;</li>
|
|
|
|
|
+ <li>напрямую сервером утилит <a href="/main/ru/calculate-core" class="wiki-page">cl-core</a>.</li>
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- <p>Во время установки программа извлечёт полный образ системы (stage4) и выполнит первичную настройку с помощью шаблонов.</p></p>
|
|
|
|
|
+ <p>Система может быть установлена из squashfs-образа, если Вы загрузились с liveCD или USB Flash, либо из ISO-файла, размещенного в директории <code>/var/calculate/linux</code> или <code>/var/calculate/remote/linux</code>. Во втором случае Вы можете установить любую версию дистрибутива поддерживаемой архитектуры.</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- <h3 id="Установка-на-USB-Flash">Установка на USB-Flash<a href="#Установка-на-USB-Flash" class="wiki-anchor">¶</a></h3>
|
|
|
|
|
+ <p>Сервер утилит, консольный и графический клиенты входят в состав Calculate Linux, но могут быть установлены из оверлея Calculate в любом Gentoo-совместимом дистрибутиве.</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- <p><em>Прежде чем приступить к установке, сделайте резервную копию своих данных на флешке.</em></p>
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- <p>Для инсталляции системы на USB-Flash используется консольная утилита <code>cl-install</code>. Подключите флешку к вашему компьютеру. Для определения имени устройства вашей флешки выполните в консоли с правами <em>root</em>:<br /><pre>
|
|
|
|
|
-fdisk -l
|
|
|
|
|
-</pre></p>
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- <p>Например, если ваш флеш-диск определился как устройство <code>/dev/sdb</code>, установка системы на него производится командой:<br /><pre>
|
|
|
|
|
-cl-install -d /dev/sdb1
|
|
|
|
|
-</pre></p>
|
|
|
|
|
+Подробное описание установки смотрите в соответствующих разделах:
|
|
|
|
|
+ <ul>
|
|
|
|
|
+ <li><a href="/main/ru/calculate_install" class="wiki-page">Установка на жёсткий диск</a>;</li>
|
|
|
|
|
+ <li><a href="/main/ru/calculate_install_flash" class="wiki-page">Установка на Flash</a>;</li>
|
|
|
|
|
+ <li><a href="/main/ru/calculate_install_pxe" class="wiki-page new">Установка PXE</a>.</li>
|
|
|
|
|
+ </ul></p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<h2 id="Первый-запуск">Первый запуск<a href="#Первый-запуск" class="wiki-anchor">¶</a></h2>
|
|
|
|
|
@@ -152,7 +141,7 @@ emerge -uDNa world
|
|
|
|
|
<p>Если установка системы вызвала сложности или вы хотите поделиться своим впечатлением, зайдите на <em>IRC</em> канал <em>#calculate-ru</em> (сервер FreeNode) сообщества пользователей Calculate Linux. Для этого достаточно воспользоваться иконкой <em>Xchat</em> на вашем рабочем столе.</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- <p>Сайт проекта: <a class="external" href="http://www.calculate-linux.ru">http://www.calculate-linux.ru</a><br />Рассылка: <a class="external" href="http://www.calculate-linux.ru/main/ru/maillist">http://www.calculate-linux.ru/main/ru/maillist</a><br />IRC чат: <a class="external" href="http://www.calculate-linux.ru/irc">http://www.calculate-linux.ru/irc</a></p>
|
|
|
|
|
+ <p>Сайт проекта: <noindex><a class="external" href="http://www.calculate-linux.ru" ref="nofollow">http://www.calculate-linux.ru</a></noindex><br />Рассылка: <noindex><a class="external" href="http://www.calculate-linux.ru/main/ru/maillist" ref="nofollow">http://www.calculate-linux.ru/main/ru/maillist</a></noindex><br />IRC чат: <noindex><a class="external" href="http://www.calculate-linux.ru/irc" ref="nofollow">http://www.calculate-linux.ru/irc</a></noindex></p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<p><em>Приятной работы!<br />Команда разработчиков Calculate Linux.</em></p>
|
|
|
|
|
diff --git install/cl_install.py install/cl_install.py
|
|
|
|
|
index ce4c5f6..c8a69b3 100644
|
|
|
|
|
--- install/cl_install.py
|
|
|
|
|
+++ install/cl_install.py
|
|
|
|
|
@@ -744,7 +744,8 @@ class Install(color_print):
|
|
|
|
|
self.startTask(_("Preparing the system for reboot"))
|
|
|
|
|
self.prepareBoot(self.targetDistr)
|
|
|
|
|
self.endTask()
|
|
|
|
|
- if self.askConfirm(_("Would you like to reboot your computer "
|
|
|
|
|
+ if self.clVars.Get('os_install_pxe') == "off" and \
|
|
|
|
|
+ self.askConfirm(_("Would you like to reboot your computer "
|
|
|
|
|
"now to complete the installation?"),
|
|
|
|
|
default="no") == "yes":
|
|
|
|
|
os.system("/sbin/reboot")
|
|
|
|
|
diff --git install/cl_wsdl_install.py install/cl_wsdl_install.py
|
|
|
|
|
index c5e61bd..68eb984 100644
|
|
|
|
|
--- install/cl_wsdl_install.py
|
|
|
|
|
+++ install/cl_wsdl_install.py
|
|
|
|
|
@@ -75,6 +75,7 @@ class InstallInfo(CommonInfo):
|
|
|
|
|
os_install_x11_composite = Boolean
|
|
|
|
|
os_install_fb_resolution = String
|
|
|
|
|
os_install_grub_terminal = String
|
|
|
|
|
+ os_audio_default = String
|
|
|
|
|
|
|
|
|
|
cl_autopartition_device = Array(String)
|
|
|
|
|
cl_autopartition_scheme = Array(String)
|
|
|
|
|
@@ -141,6 +142,8 @@ class Wsdl:
|
|
|
|
|
normal=('cl_migrate_root_pwd','cl_migrate_data','cl_autologin'),
|
|
|
|
|
hide=('cl_migrate_data',),
|
|
|
|
|
brief=('cl_migrate_user',))
|
|
|
|
|
+ dv.addGroup(_("Audio"),
|
|
|
|
|
+ normal=('os_audio_default',))
|
|
|
|
|
dv.addGroup(_("Video"),
|
|
|
|
|
normal=('os_install_x11_video_drv','os_install_x11_composite',
|
|
|
|
|
'os_install_x11_resolution','os_install_fb_resolution',
|
|
|
|
|
@@ -399,3 +402,33 @@ class Wsdl:
|
|
|
|
|
@installCatchExcept
|
|
|
|
|
def setup_system_view (self, sid, params):
|
|
|
|
|
return commonView(self,sid,params,"setup_system")
|
|
|
|
|
+
|
|
|
|
|
+ def setup_audio_vars(self):
|
|
|
|
|
+ dv = cl_install.DataVarsInstall()
|
|
|
|
|
+ dv.importInstall()
|
|
|
|
|
+ dv.flIniFile()
|
|
|
|
|
+ dv.Set('cl_action','merge',True)
|
|
|
|
|
+ dv.Set('cl_merge_pkg',[None],True)
|
|
|
|
|
+ dv.Set('cl_merge_set',"on",True)
|
|
|
|
|
+ dv.Set('cl_setup','audio',True)
|
|
|
|
|
+ dv.addGroup(None,
|
|
|
|
|
+ normal=('os_audio_default',),
|
|
|
|
|
+ expert=('cl_templates_locate',"cl_dispatch_conf","cl_verbose_set"),
|
|
|
|
|
+ next_label=_("Save"))
|
|
|
|
|
+ return dv
|
|
|
|
|
+
|
|
|
|
|
+ @rpc(Integer, InstallInfo, _returns = Array(ReturnedMessage))
|
|
|
|
|
+ @core_method(category=__('Configuration'),title=__('Audio'),
|
|
|
|
|
+ image='audio-card',command="cl-setup-audio",
|
|
|
|
|
+ gui=True, rights=['setup'])
|
|
|
|
|
+ def setup_audio ( self, sid, info):
|
|
|
|
|
+ """
|
|
|
|
|
+ Setup locale
|
|
|
|
|
+ """
|
|
|
|
|
+ return self.callMethod(sid,info,logicClass=cl_install.Install,
|
|
|
|
|
+ method="setupSystem",method_name="setup_audio")
|
|
|
|
|
+
|
|
|
|
|
+ @rpc(Integer, ViewParams,_returns = ViewInfo)
|
|
|
|
|
+ @installCatchExcept
|
|
|
|
|
+ def setup_audio_view (self, sid, params):
|
|
|
|
|
+ return commonView(self,sid,params,"setup_audio")
|
|
|
|
|
diff --git install/variables/autopartition.py install/variables/autopartition.py
|
|
|
|
|
index 7c9c4da..52ca7a9 100644
|
|
|
|
|
--- install/variables/autopartition.py
|
|
|
|
|
+++ install/variables/autopartition.py
|
|
|
|
|
@@ -869,7 +869,7 @@ class VariableClAutopartitionDeviceSize(ReadonlyVariable):
|
|
|
|
|
_in=devices))
|
|
|
|
|
# TODO: remove set 10G
|
|
|
|
|
#return str(1024*1024*1024*10)
|
|
|
|
|
- return str(reduce(operator.add,sizeDevice))
|
|
|
|
|
+ return str(reduce(operator.add,sizeDevice,0))
|
|
|
|
|
|
|
|
|
|
class VariableClAutopartitionFreeSize(ReadonlyVariable):
|
|
|
|
|
"""
|
|
|
|
|
diff --git install/variables/disk.py install/variables/disk.py
|
|
|
|
|
index 639aa85..5988067 100644
|
|
|
|
|
--- install/variables/disk.py
|
|
|
|
|
+++ install/variables/disk.py
|
|
|
|
|
@@ -1680,6 +1680,8 @@ class VariableOsInstallMbr(LocationHelper,Variable):
|
|
|
|
|
if len(value) > 1:
|
|
|
|
|
raise VariableError(
|
|
|
|
|
_("For Flash install, you need only one disk"))
|
|
|
|
|
+ if self.Get('os_install_uefi_set') == 'on':
|
|
|
|
|
+ return
|
|
|
|
|
for mbrDisk in value:
|
|
|
|
|
if self.Get('cl_autopartition_set') == 'on':
|
|
|
|
|
tableOnBootDisk = self.Get('cl_autopartition_table')
|
|
|
|
|
diff --git install/variables/system.py install/variables/system.py
|
|
|
|
|
index 184f651..3b70237 100644
|
|
|
|
|
--- install/variables/system.py
|
|
|
|
|
+++ install/variables/system.py
|
|
|
|
|
@@ -19,7 +19,8 @@ import sys
|
|
|
|
|
import re
|
|
|
|
|
from os import path
|
|
|
|
|
from calculate.lib.datavars import Variable,VariableError,ReadonlyVariable, \
|
|
|
|
|
- TableVariable,PasswordError
|
|
|
|
|
+ TableVariable,PasswordError, \
|
|
|
|
|
+ ReadonlyTableVariable,FieldValue
|
|
|
|
|
from calculate.install.fs_manager import FileSystemManager
|
|
|
|
|
from calculate.lib.utils.files import (readFile,getProgPath,process,
|
|
|
|
|
readLinesFile)
|
|
|
|
|
@@ -509,13 +510,14 @@ class VariableClSetup(Variable):
|
|
|
|
|
value = ""
|
|
|
|
|
|
|
|
|
|
def choice(self):
|
|
|
|
|
- return ["network","locale","video","boot","users",""]
|
|
|
|
|
+ return ["audio","network","locale","video","boot","users",""]
|
|
|
|
|
|
|
|
|
|
def humanReadable(self):
|
|
|
|
|
mapType = {'network':_("network settings"),
|
|
|
|
|
'locale':_("localization and time options"),
|
|
|
|
|
'video':_("video settings"),
|
|
|
|
|
'boot':_("boot parameters"),
|
|
|
|
|
+ 'audio':_("audio parameters"),
|
|
|
|
|
'users':_("user settings") }
|
|
|
|
|
return mapType.get(self.Get(),"")
|
|
|
|
|
|
|
|
|
|
@@ -650,3 +652,95 @@ class VariableOsInstallGrubTerminal(Variable):
|
|
|
|
|
|
|
|
|
|
def choice(self):
|
|
|
|
|
return ['gfxterm','console']
|
|
|
|
|
+
|
|
|
|
|
+ def uncompatible(self):
|
|
|
|
|
+ """
|
|
|
|
|
+ Grub setting up unavailable for flash installation
|
|
|
|
|
+ """
|
|
|
|
|
+ if self.Get('os_install_root_type') == 'flash':
|
|
|
|
|
+ return _("Grub configuration unavailable for Flash install")
|
|
|
|
|
+ return ""
|
|
|
|
|
+
|
|
|
|
|
+class VariableOsAudioData(ReadonlyTableVariable):
|
|
|
|
|
+ """
|
|
|
|
|
+ Information about audio cards
|
|
|
|
|
+ """
|
|
|
|
|
+ source = ['os_audio_id',
|
|
|
|
|
+ 'os_audio_name']
|
|
|
|
|
+
|
|
|
|
|
+ def get(self,hr=False):
|
|
|
|
|
+ """LVM hash"""
|
|
|
|
|
+ aplay = getProgPath('/usr/bin/aplay')
|
|
|
|
|
+ if not aplay:
|
|
|
|
|
+ return [[]]
|
|
|
|
|
+ entry = re.compile('^card (\d+): ([^,]+)')
|
|
|
|
|
+ return tuple(map(lambda x:x.groups(),
|
|
|
|
|
+ filter(None,map(entry.search,
|
|
|
|
|
+ process(aplay,'-l')))))
|
|
|
|
|
+
|
|
|
|
|
+ setValue = Variable.setValue
|
|
|
|
|
+
|
|
|
|
|
+class VariableOsAudioId(FieldValue,ReadonlyVariable):
|
|
|
|
|
+ """
|
|
|
|
|
+ Order Id of audio card
|
|
|
|
|
+ """
|
|
|
|
|
+ type = "list"
|
|
|
|
|
+ source_variable = "os_audio_data"
|
|
|
|
|
+ column = 0
|
|
|
|
|
+
|
|
|
|
|
+class VariableOsAudioName(FieldValue,ReadonlyVariable):
|
|
|
|
|
+ """
|
|
|
|
|
+ Name of audio card
|
|
|
|
|
+ """
|
|
|
|
|
+ type = "list"
|
|
|
|
|
+ source_variable = "os_audio_data"
|
|
|
|
|
+ column = 1
|
|
|
|
|
+
|
|
|
|
|
+class VariableOsAudioDefaultSet(ReadonlyVariable):
|
|
|
|
|
+ """
|
|
|
|
|
+ Force write in config 0
|
|
|
|
|
+ """
|
|
|
|
|
+ type = "bool"
|
|
|
|
|
+
|
|
|
|
|
+ def get(self):
|
|
|
|
|
+ res = self.Select('os_audio_id',where='os_audio_name',
|
|
|
|
|
+ notlike='HDMI',limit=1)
|
|
|
|
|
+ audioDefault = self.Get('os_audio_default')
|
|
|
|
|
+ if audioDefault != '0' or \
|
|
|
|
|
+ res and res != "0" and audioDefault == '0':
|
|
|
|
|
+ return 'on'
|
|
|
|
|
+ return 'off'
|
|
|
|
|
+
|
|
|
|
|
+class VariableOsAudioDefault(Variable):
|
|
|
|
|
+ """
|
|
|
|
|
+ Current default audio card
|
|
|
|
|
+ """
|
|
|
|
|
+ type = "choice"
|
|
|
|
|
+ opt = ['--audio']
|
|
|
|
|
+
|
|
|
|
|
+ def init(self):
|
|
|
|
|
+ self.label = _("Default audio card")
|
|
|
|
|
+ self.help = _("set default audio card")
|
|
|
|
|
+
|
|
|
|
|
+ def get(self):
|
|
|
|
|
+ defaultCardRe = re.compile('defaults.ctl.card\s+(\d+)')
|
|
|
|
|
+ entry = defaultCardRe.search(readFile('/etc/asound.conf'))
|
|
|
|
|
+ if entry and entry.groups()[0] in self.Get('os_audio_id'):
|
|
|
|
|
+ return entry.groups()[0]
|
|
|
|
|
+ res = self.Select('os_audio_id',where='os_audio_name',
|
|
|
|
|
+ notlike='HDMI',limit=1)
|
|
|
|
|
+ return res or '0'
|
|
|
|
|
+
|
|
|
|
|
+ def choice(self):
|
|
|
|
|
+ data = self.Get('os_audio_data')
|
|
|
|
|
+ if data and data[0]:
|
|
|
|
|
+ return self.Get('os_audio_data')
|
|
|
|
|
+ return []
|
|
|
|
|
+
|
|
|
|
|
+ def uncompatible(self):
|
|
|
|
|
+ """
|
|
|
|
|
+ Audio setting up unavailable for flash installation
|
|
|
|
|
+ """
|
|
|
|
|
+ if self.Get('os_install_root_type') == 'flash':
|
|
|
|
|
+ return _("Audio configuration unavailable for Flash install")
|
|
|
|
|
+ return ""
|