add acpi/apic to drvinst

git-svn-id: svn://kolibrios.org@8915 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Kirill Lipatov (Leency) 2021-06-21 22:51:35 +00:00
parent bf0e285246
commit 5a0ee4e892
4 changed files with 39 additions and 21 deletions

Binary file not shown.

View File

@ -1,14 +1,26 @@
ВНИМАНИЕ! Простой запуск программы "acpi" из папки drivers/acpi ничего не даст. ================================ ENG ================================
Установка делается в ручном режиме, о чём дальше.
Current driver installation is semi-manual.
To turn on APIC you have to:
1) Run Installer (install.kex)
2) Wait 3 seconds and get sure that there is a message about succesfull
file generation /rd/1/drivers/devices.dat
3) Make kernel restart (MENU -> END -> HOME key)
4) Check that kernel and drivers are working well.
5) Save kolibri.img. Now each time you boot APIC would be turned on automatically.
================================ RUS ================================
Óñòàíîâêà äðàéâåðà äåëàåòñÿ â ÷àñòè÷íî ðó÷íîì ðåæèìå, î ÷¸ì äàëüøå.
Чтобы включить APIC надо: Чтобы включить APIC надо:
1) Очистить 120 Кб на рамдиске /rd/1
2) Скопировать файлы нумератор устройств (acpi и acpi.dll из папки /kolibrios/drivers/acpi/) в /rd/1/drivers 1) Çàïóñòèòü óñòàíîâùèê (install.kex)
3) Запустить /rd/1/drivers/acpi 2) Ïîäîæäàòü 3 ñåêóíäû è óáåäèòüñÿ, ÷òî ïîêàçàëîñü ñîîáùåíèå
4) Убедиться, что папке /rd/1/drivers присутсвует файл devices.dat îá óñïåøíîé ãåíåðàöèè /rd/1/drivers/devices.dat
5) Сделать рестарт ядра 3) Ñäåëàòü ðåñòàðò ÿäðà (Ìåíþ -> Çàâåðøåíèå ðàáîòû -> ßäðî)
6) Проверить работу ядра и драйверов 4) Ïðîâåðèòü ðàáîòó ÿäðà è äðàéâåðîâ
7) Удалить нумератор устройств и сохранить образ. Теперь APIC будет включаться при каждой загрузке ядра. 5) Ñîõðàíèòü îáðàç. Òåïåðü APIC áóäåò âêëþ÷àòüñÿ ïðè êàæäîé çàãðóçêå ÿäðà.
Детали реализации. Детали реализации.

View File

@ -1,6 +1,6 @@
[AHCI] [AHCI]
ver=ver rc06 ver=ver rc06
type=disk type=50
description_ru=<EFBFBD>®¨áª ª®­â஫«¥à®¢ ¨ ®¯à¥¤¥«¥­¨¥ ¯®¤ª«îçñ­­ëå €’€ ¤¨áª®¢. á«ãç ¥ ãᯥå , ¤¥« ¥â ¢¨¤¨¬ë¬¨ ¢ Š®«¨¡à¨ ¤¨áª¨ ¯®¤ª«î祭­ë¥ ç¥à¥§ ACHI. €«ìâ¥à­ â¨¢®© ¤ ­­®¬ã ¤à ©¢¥àã, á ¤à㣨¬ ¬¥å ­¨§¬®¬ ®¯à¥¤¥«¥­¨ï ¤¨áª®¢, ï¥âáï ¯ã­ªâ "b" ­  £®«ã¡®¬ áâ à⮢®¬ íªà ­¥. description_ru=<EFBFBD>®¨áª ª®­â஫«¥à®¢ ¨ ®¯à¥¤¥«¥­¨¥ ¯®¤ª«îçñ­­ëå €’€ ¤¨áª®¢. á«ãç ¥ ãᯥå , ¤¥« ¥â ¢¨¤¨¬ë¬¨ ¢ Š®«¨¡à¨ ¤¨áª¨ ¯®¤ª«î祭­ë¥ ç¥à¥§ ACHI. €«ìâ¥à­ â¨¢®© ¤ ­­®¬ã ¤à ©¢¥àã, á ¤à㣨¬ ¬¥å ­¨§¬®¬ ®¯à¥¤¥«¥­¨ï ¤¨áª®¢, ï¥âáï ¯ã­ªâ "b" ­  £®«ã¡®¬ áâ à⮢®¬ íªà ­¥.
description_en=The driver searches for ATA disks connected to the AHCI controller. Found disks are identified and made available to the user. Alternative to this dirver is an option "b" at the start blue screen. description_en=The driver searches for ATA disks connected to the AHCI controller. Found disks are identified and made available to the user. Alternative to this dirver is an option "b" at the start blue screen.
readme=/kolibrios/drivers/ahci/readme.txt readme=/kolibrios/drivers/ahci/readme.txt
@ -8,7 +8,7 @@ install=/kolibrios/drivers/ahci/ahci
[Video ATI KMS] [Video ATI KMS]
ver=ver 4.4.30 ver=ver 4.4.30
type=video type=61
description_ru=„à ©¢¥à  ¤«ï ¢¨¤¥®ª àâ ATI Radeon. <20>®¤¤¥à¦¨¢ îâáï ¤¨áªà¥â­ë¥ ¨ ¨­â¥£à¨à®¢ ­­ë¥ 稯á¥âë ᥬ¥©á⢠ATI R100-R600, Evergreen, Northern Islands, Southern Islands. “áâ ­ ¢«¨¢ ¥â ¢¨¤¥®à¥¦¨¬ ¯à¨ ¯¥à¢®¬ § ¯ã᪥ ¨ ¤¥« ¥â ¤®áâã¯­ë¬ á¬¥­ã ¢¨¤¥®à¥¦¨¬  ¢ ¯à®æ¥áᥠࠡ®âë ç¥à¥§ SYSPANEL -> VideoMode. description_ru=„à ©¢¥à  ¤«ï ¢¨¤¥®ª àâ ATI Radeon. <20>®¤¤¥à¦¨¢ îâáï ¤¨áªà¥â­ë¥ ¨ ¨­â¥£à¨à®¢ ­­ë¥ 稯á¥âë ᥬ¥©á⢠ATI R100-R600, Evergreen, Northern Islands, Southern Islands. “áâ ­ ¢«¨¢ ¥â ¢¨¤¥®à¥¦¨¬ ¯à¨ ¯¥à¢®¬ § ¯ã᪥ ¨ ¤¥« ¥â ¤®áâã¯­ë¬ á¬¥­ã ¢¨¤¥®à¥¦¨¬  ¢ ¯à®æ¥áᥠࠡ®âë ç¥à¥§ SYSPANEL -> VideoMode.
description_en=The driver for ATI Radeon video cards supports all discrete and integrated chipsets from the ATI R100-R600, Evergreen, Northern Islands and Southern Islands families. The driver sets the video mode on the first load and allows to change the video mode via SYSPANEL -> VideoMode. description_en=The driver for ATI Radeon video cards supports all discrete and integrated chipsets from the ATI R100-R600, Evergreen, Northern Islands and Southern Islands families. The driver sets the video mode on the first load and allows to change the video mode via SYSPANEL -> VideoMode.
readme=/kolibrios/drivers/atikms/readme.txt readme=/kolibrios/drivers/atikms/readme.txt
@ -16,7 +16,7 @@ install=/kolibrios/drivers/atikms/atikms
[Video Intel i915] [Video Intel i915]
ver=ver 4.6.7-1 ver=ver 4.6.7-1
type=video type=61
description_ru=„à ©¢¥à  ¤«ï ¢¨¤¥®ª àâ Intel. <20>®¤¤¥à¦¨¢ îâáï ¢á¥ PCI Express ¢¨¤¥®ï¤à  Intel ®â i915 ¤® Skylake. “áâ ­ ¢«¨¢ ¥â ¢¨¤¥®à¥¦¨¬ ¯à¨ ¯¥à¢®¬ § ¯ã᪥ ¨ ¤¥« ¥â ¤®áâã¯­ë¬ á¬¥­ã ¢¨¤¥®à¥¦¨¬  ¢ ¯à®æ¥áᥠࠡ®âë ç¥à¥§ SYSPANEL -> VideoMode. description_ru=„à ©¢¥à  ¤«ï ¢¨¤¥®ª àâ Intel. <20>®¤¤¥à¦¨¢ îâáï ¢á¥ PCI Express ¢¨¤¥®ï¤à  Intel ®â i915 ¤® Skylake. “áâ ­ ¢«¨¢ ¥â ¢¨¤¥®à¥¦¨¬ ¯à¨ ¯¥à¢®¬ § ¯ã᪥ ¨ ¤¥« ¥â ¤®áâã¯­ë¬ á¬¥­ã ¢¨¤¥®à¥¦¨¬  ¢ ¯à®æ¥áᥠࠡ®âë ç¥à¥§ SYSPANEL -> VideoMode.
description_en=The driver for Intel video cards supports all Intel PCI Express video cores from i915 till Skylake. The driver sets the video mode on the first load and allows to change the video mode via SYSPANEL -> VideoMode. description_en=The driver for Intel video cards supports all Intel PCI Express video cores from i915 till Skylake. The driver sets the video mode on the first load and allows to change the video mode via SYSPANEL -> VideoMode.
readme=/kolibrios/drivers/i915/readme.txt readme=/kolibrios/drivers/i915/readme.txt
@ -24,8 +24,16 @@ install=/kolibrios/drivers/i915/i915
[Video VmWare] [Video VmWare]
ver=ver 3.14-rc2 ver=ver 3.14-rc2
type=video type=61
description_ru=„à ©¢¥à ¤«ï VMware SVGA II. description_ru=„à ©¢¥à ¤«ï VMware SVGA II.
description_en=The driver for VMware SVGA II. description_en=The driver for VMware SVGA II.
readme=/kolibrios/drivers/vmware/readme.txt readme=/kolibrios/drivers/vmware/readme.txt
install=/kolibrios/drivers/vmware/vmwgfx install=/kolibrios/drivers/vmware/vmwgfx
[ACPI/APIC]
ver=ver 0.4
icon=37
description_ru=<EFBFBD> áè¨à¥­­ë© ª®­â஫«¥à ¯à¥à뢠­¨© ¢¯¥à¢ë¥ ­ ç « ¯à¨¬¥­ïâìáï ­  ¤¢ãå¯à®æ¥áá®à­ëå á¨á⥬­ëå ¯« â å, ¨§-§  ¡®«¥¥ á«®¦­®© ®¡à ¡®âª¨ ¯à¥à뢠­¨© ®â à §«¨ç­ëå ãáâனá⢠(­¥ ᮢᥬ ®ç¥¢¨¤­®, ª ª®© ¨§ ¯à®æ¥áá®à®¢ ¤®«¦¥­ ॠ£¨à®¢ âì ­  ¯à¥à뢠­¨¥). ‡ â¥¬ à áè¨à¥­­ë© ª®­â஫«¥à ¯à¥à뢠­¨© ­ ç « ¨á¯®«ì§®¢ âìáï ¨ ­  ®¤­®¯à®æ¥áá®à­ëå á¨á⥬ å, ¯«îá, ­¥áª®«ìª® ¯« â à áè¨à¥­¨ï ¬®£ãâ à §¤¥«ïâì ¬¥¦¤ã ᮡ®© ®¡é¥¥ ¯à¥à뢠­¨¥. Ž¡ï§ â¥«ì­®(!) ¯à®ç¨â ©â¥ Readme.
description_en=Advanced Programmable Interrupt Controller (APIC) is one of several architectural designs intended to solve interrupt routing efficiency issues in multiprocessor computer systems. It allows different expansion cards share the same interrupt. You must(!) read Readme to properly install this driver.
readme=/kolibrios/drivers/acpi/readme.txt
install=/kolibrios/drivers/acpi/install.kex

View File

@ -61,7 +61,7 @@ collection ini_sections=0;
char drvinf_path[4096] = "/kolibrios/drivers/drvinf.ini"; char drvinf_path[4096] = "/kolibrios/drivers/drvinf.ini";
char cur_version[64]; char cur_version[64];
char cur_type[12]; int cur_icon;
char cur_description[1024]; char cur_description[1024];
char cur_readme_path[4096]; char cur_readme_path[4096];
char cur_install_path[4096]; char cur_install_path[4096];
@ -137,10 +137,9 @@ void Draw_IntroWindow()
void Draw_DriverListWindow() void Draw_DriverListWindow()
{ {
int PADDING = 12; #define PADDING 12
int right_frame_x = Form.cwidth*46/100; int right_frame_x = Form.cwidth*46/100;
int readme_w = 0; int readme_w = 0;
int icon_n = 38;
//LEFT FRAME //LEFT FRAME
SelectList_Init(PADDING, SelectList_Init(PADDING,
PADDING, PADDING,
@ -152,8 +151,7 @@ void Draw_DriverListWindow()
//RIGHT FRAME //RIGHT FRAME
GetCurrentSectionData(); GetCurrentSectionData();
DrawBar(right_frame_x, PADDING+3, Form.cwidth - right_frame_x - PADDING, 80, sc.work); DrawBar(right_frame_x, PADDING+3, Form.cwidth - right_frame_x - PADDING, 80, sc.work);
if (streq(#cur_type, "disk")) icon_n = 50; DrawIcon32(right_frame_x, PADDING, sc.work, cur_icon);
DrawIcon32(right_frame_x, PADDING, sc.work, icon_n);
WriteTextB(right_frame_x+44, PADDING+3, 0x81, sc.work_text, ini_sections.get(select_list.cur_y)); WriteTextB(right_frame_x+44, PADDING+3, 0x81, sc.work_text, ini_sections.get(select_list.cur_y));
WriteText(right_frame_x+44, PADDING+23, 0x80, sc.work_text, #cur_version); WriteText(right_frame_x+44, PADDING+23, 0x80, sc.work_text, #cur_version);
if(cur_readme_path[0]) readme_w = DrawStandartCaptButton(right_frame_x, PADDING+45, BUTTON_ID_README, T_README); if(cur_readme_path[0]) readme_w = DrawStandartCaptButton(right_frame_x, PADDING+45, BUTTON_ID_README, T_README);
@ -190,7 +188,7 @@ void GetCurrentSectionData()
{ {
dword section_name = ini_sections.get(select_list.cur_y); dword section_name = ini_sections.get(select_list.cur_y);
ini_get_str stdcall (#drvinf_path, section_name, "ver", #cur_version, sizeof(cur_version), 0); ini_get_str stdcall (#drvinf_path, section_name, "ver", #cur_version, sizeof(cur_version), 0);
ini_get_str stdcall (#drvinf_path, section_name, "type", #cur_type, sizeof(cur_type), 0); ini_get_int stdcall (#drvinf_path, section_name, "icon", 38); cur_icon = EAX;
ini_get_str stdcall (#drvinf_path, section_name, #description_name, #cur_description, sizeof(cur_description), 0); ini_get_str stdcall (#drvinf_path, section_name, #description_name, #cur_description, sizeof(cur_description), 0);
ini_get_str stdcall (#drvinf_path, section_name, "readme", #cur_readme_path, sizeof(cur_readme_path), 0); ini_get_str stdcall (#drvinf_path, section_name, "readme", #cur_readme_path, sizeof(cur_readme_path), 0);
ini_get_str stdcall (#drvinf_path, section_name, "install", #cur_install_path, sizeof(cur_install_path), 0); ini_get_str stdcall (#drvinf_path, section_name, "install", #cur_install_path, sizeof(cur_install_path), 0);
@ -241,7 +239,7 @@ void Event_RunInstall()
result = io.run(#cur_install_path, NULL); result = io.run(#cur_install_path, NULL);
if (result) notify(T_DRIVER_INSTALLARION_STARTED); if (result) notify(T_DRIVER_INSTALLARION_STARTED);
pause(300); pause(300);
if (streq(#cur_type, "video")) { if (cur_icon == 61) {
RestartProcessByName("/sys/@taskbar", SINGLE); RestartProcessByName("/sys/@taskbar", SINGLE);
RestartProcessByName("/sys/@docky", SINGLE); RestartProcessByName("/sys/@docky", SINGLE);
RestartProcessByName("/sys/@icon", MULTIPLE); RestartProcessByName("/sys/@icon", MULTIPLE);