Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » LPC bus I/O под linux | страница 3
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 3 из 5
На страницу: Пред.  1, 2, 3, 4, 5  След. | Все страницы
Поиск в этой теме:
Железный канал: «LPC bus I/O под linux»
VBKesha
 817 EGP


Рейтинг канала: 7(600)
Репутация: 132
Сообщения: 3329
Откуда: обл.Брянская г. Трубчевск
Зарегистрирован: 07.12.2005
БулерМэн :
а зачем нам нужно знать содержимое данной функции?

https://www.elite-games.ru/conference/viewtopic.php?p=3609008#3609008
Смотри код под спойлером отсюда "А вот что вызывается при активации wifi"
Там используется эта функция, для активации WiFi.

добавлено спустя 1 минуту:
БулерМэн :
Глобально то, я полагаю, нужны аргументы для этих функций, и данные, чтобы как минимум повторить работу данной программы?

Так тут данные везде в открытом виде и нигде не считаются. Кусок где инит вообще всё открыто, кусок с влючением вай фая через обертку. Почитай пост по ссылке там же вроде всё очевидно.
_________________
JumpGate. Quantar Optimus.
Jumpgate(TM) . . . welcome to your next life . . . There's nothing you can't do

Последний раз редактировалось: VBKesha (01:59 10-02-2019), всего редактировалось 1 раз
    Добавлено: 01:59 10-02-2019   
БулерМэн
 420 EGP


Рейтинг канала: 4(58)
Репутация: 68
Сообщения: 1580
Откуда: Гороховец
Зарегистрирован: 07.02.2006
сообщения не редактируются...
_________________
Дулички и фигушки
    Добавлено: 02:01 10-02-2019   
VBKesha
 817 EGP


Рейтинг канала: 7(600)
Репутация: 132
Сообщения: 3329
Откуда: обл.Брянская г. Трубчевск
Зарегистрирован: 07.12.2005
Хотя вижу я без оберток выкладывал
sub_4F38C4 это sub_523110
sub_4FE819 это sub_522040
_________________
JumpGate. Quantar Optimus.
Jumpgate(TM) . . . welcome to your next life . . . There's nothing you can't do
    Добавлено: 02:02 10-02-2019   
БулерМэн
 420 EGP


Рейтинг канала: 4(58)
Репутация: 68
Сообщения: 1580
Откуда: Гороховец
Зарегистрирован: 07.02.2006
sub_4FE819(v7, 0x68Fu, 1, 0); //вот тут явно заявлена передача конкретного значения куда нужно

добавлено спустя 1 минуту:
маленькое уточнение, а что означает литера u после значения 0x68F?
_________________
Дулички и фигушки

Последний раз редактировалось: БулерМэн (02:09 10-02-2019), всего редактировалось 2 раз(а)
    Добавлено: 02:05 10-02-2019   
VBKesha
 817 EGP


Рейтинг канала: 7(600)
Репутация: 132
Сообщения: 3329
Откуда: обл.Брянская г. Трубчевск
Зарегистрирован: 07.12.2005
БулерМэн :
sub_4FE819(v7, 0x68Fu, 1, 0); Это?

Это выключение WiFi, включение sub_4FE819(v7, 0x68Fu, 1, 1);
Литера u значит unsigned
_________________
JumpGate. Quantar Optimus.
Jumpgate(TM) . . . welcome to your next life . . . There's nothing you can't do
    Добавлено: 02:08 10-02-2019   
БулерМэн
 420 EGP


Рейтинг канала: 4(58)
Репутация: 68
Сообщения: 1580
Откуда: Гороховец
Зарегистрирован: 07.02.2006
VBKesha :
Литера u значит unsigned

я подозревал, разве для всех значений в таком формате можно указать u?

добавлено спустя 2 минуты:
Хм, внезапно

добавлено спустя 1 минуту:
Тогда наверное можно просто написать приложение которое используя данную функцию и указанную библиотеку просто дергает вай-фай на включение или выключение...

добавлено спустя 2 минуты:
хотя это создаст больше проблем, скорее всего нужно к библиотеке дописать условие, типа дернули вайфай вверх и не давать вызывать выключение вай-фая.
_________________
Дулички и фигушки

Последний раз редактировалось: БулерМэн (02:17 10-02-2019), всего редактировалось 5 раз(а)
    Добавлено: 02:16 10-02-2019   
VBKesha
 817 EGP


Рейтинг канала: 7(600)
Репутация: 132
Сообщения: 3329
Откуда: обл.Брянская г. Трубчевск
Зарегистрирован: 07.12.2005
БулерМэн :
Тогда наверное можно просто написать приложение которое используя данную функцию и указанную библиотеку просто дергает вай-фай на включение или выключение...

Ну под виндой то да. Но под линухом этой либы нет. Так что придётся писать по другому... Но в целом работы на 30 минут для тех кто знает как, или часов на 8 для тех кто только начал знать как.
_________________
JumpGate. Quantar Optimus.
Jumpgate(TM) . . . welcome to your next life . . . There's nothing you can't do
    Добавлено: 02:16 10-02-2019   
БулерМэн
 420 EGP


Рейтинг канала: 4(58)
Репутация: 68
Сообщения: 1580
Откуда: Гороховец
Зарегистрирован: 07.02.2006
Ввод/вывод на реальном железе под линуксом, когда нет либы - можно нехорошие вещи с компом наделать Гы-гы
_________________
Дулички и фигушки
    Добавлено: 02:25 10-02-2019   
VBKesha
 817 EGP


Рейтинг канала: 7(600)
Репутация: 132
Сообщения: 3329
Откуда: обл.Брянская г. Трубчевск
Зарегистрирован: 07.12.2005
БулерМэн :
Ввод/вывод на реальном железе под линуксом, когда нет либы - можно нехорошие вещи с компом наделать

А либа чем тебе помешает сделать плохие вещи?
_________________
JumpGate. Quantar Optimus.
Jumpgate(TM) . . . welcome to your next life . . . There's nothing you can't do
    Добавлено: 02:26 10-02-2019   
БулерМэн
 420 EGP


Рейтинг канала: 4(58)
Репутация: 68
Сообщения: 1580
Откуда: Гороховец
Зарегистрирован: 07.02.2006
хотя да, там ведь запись/чтение напрямую, ничем пожалуй Хы...
_________________
Дулички и фигушки
    Добавлено: 02:30 10-02-2019   
_RAZAAR_
 62 EGP


Рейтинг канала: 2(11)
Репутация: -13
Сообщения: 2854 Заблокирован
Откуда: РАЗААРЪ - 40Лы от Лаве
Зарегистрирован: 15.04.2008
Вот кусок кода до которого удалось проследить работу который дословно исполняется сразу после нажатия кнопки и после входа в область кода ntport.dll.
коменарии ;skip я сделал для того чтоб было понятно по какому пути исполнялся код в процессе анализа
ключевой вызов я обозначил как key call:
именно после него происходит магия включения быключения и только он
является осмысленным для дальнейшего анализа
очевидно это функция kernel32.DeviceIoControl
признаюсь мне совсем непонятно зачем использовать стороннюю ntport.dll
если всеравно потом используются системные функции для конкретных действий.
затык в анализе происходит на (M7:)
и процессорной команде SYSENTER, дальше которой ничего не дизассемблируется но переключалка переключает именно после возврата из этого fast system call 42h
в раньшие времена до пентиумов 2 помойму обращения к портам происходило обычно через INT80 если не ошибаюсь, теперь понапридумывали встраивать такие обращения в команды процессора очевидно.
гдебы почитать про номера этих fast system call вызываемых командой
SYSENTER, и как уснзать что конкретно делается в таком коле под номером 42h


 Cкрытый текст   (кликните здесь для просмотра)
Код:

3550D0h first enter to ntport.dll(code mem area) after button click

003550D0 > 55               PUSH EBP
003550D1   8BEC             MOV EBP,ESP
003550D3   83C4 F8          ADD ESP,-8
003550D6   803D 1EB33500 00 CMP BYTE PTR DS:[35B31E],0

003550DD   74 05            JE SHORT ntport.003550E4      ;skip jump to (M0.1:)

003550DF   E8 70FEFFFF      CALL ntport.00354F54

(M0.1:)
-----------------------
003550E4   0FB605 1DB33500  MOVZX EAX,BYTE PTR DS:[35B31D]
003550EB   2205 1CB33500    AND AL,BYTE PTR DS:[35B31C]

003550F1   74 31            JE SHORT ntport.00355124

003550F3   8D45 F8          LEA EAX,DWORD PTR SS:[EBP-8]
003550F6   50               PUSH EAX
003550F7   A1 287D3500      MOV EAX,DWORD PTR DS:[357D28]
003550FC   8B00             MOV EAX,DWORD PTR DS:[EAX]
003550FE   B9 01000000      MOV ECX,1
00355103   0FB755 08        MOVZX EDX,WORD PTR SS:[EBP+8]

00355107   E8 00FCFFFF      CALL ntport.00354D0C       ;call (M1:)

0035510C   A3 08B33500      MOV DWORD PTR DS:[35B308],EAX
00355111   833D 08B33500 00 CMP DWORD PTR DS:[35B308],0
00355118   74 04            JE SHORT ntport.0035511E      ;skip code to (M0.2:)
0035511A   33C0             XOR EAX,EAX
0035511C   EB 12            JMP SHORT ntport.00355130

(M0.2:)
-----------------------
0035511E   0FB745 F8        MOVZX EAX,WORD PTR SS:[EBP-8]
00355122   EB 0C            JMP SHORT ntport.00355130      ;skip code to (M0.3:)
00355124   66:8B55 08       MOV DX,WORD PTR SS:[EBP+8]
00355128   EC               IN AL,DX                                 ; I/O command
00355129   8845 FF          MOV BYTE PTR SS:[EBP-1],AL
0035512C   0FB645 FF        MOVZX EAX,BYTE PTR SS:[EBP-1]

(M0.3:)
-------------------------
00355130   59               POP ECX
00355131   59               POP ECX
00355132   5D               POP EBP
00355133   C2 0400          RETN 4      ; return from ntport.dll
================================================================================



(M1:)
------------------------

00354D0C   55               PUSH EBP
00354D0D   8BEC             MOV EBP,ESP
00354D0F   83C4 E4          ADD ESP,-1C
00354D12   53               PUSH EBX
00354D13   56               PUSH ESI
00354D14   57               PUSH EDI
00354D15   8BF9             MOV EDI,ECX
00354D17   8BF2             MOV ESI,EDX
00354D19   8BD8             MOV EBX,EAX
00354D1B   837B 18 FF       CMP DWORD PTR DS:[EBX+18],-1

00354D1F   75 07            JNZ SHORT ntport.00354D28      ;skip code to (M1.1:)

00354D21   B8 02000000      MOV EAX,2

00354D26   EB 52            JMP SHORT ntport.00354D7A

(M1.1:)
-------------------------
00354D28   6A 00            PUSH 0
00354D2A   33C9             XOR ECX,ECX
00354D2C   BA 30090000      MOV EDX,930
00354D31   B8 00F10000      MOV EAX,0F100

00354D36   E8 7DF1FFFF      CALL ntport.00353EB8       ;call (M2:)

00354D3B   0FBFD6           MOVSX EDX,SI
00354D3E   8955 F0          MOV DWORD PTR SS:[EBP-10],EDX
00354D41   897D F4          MOV DWORD PTR SS:[EBP-C],EDI
00354D44   33D2             XOR EDX,EDX
00354D46   8955 FC          MOV DWORD PTR SS:[EBP-4],EDX
00354D49   6A 00            PUSH 0
00354D4B   8D55 FC          LEA EDX,DWORD PTR SS:[EBP-4]
00354D4E   52               PUSH EDX
00354D4F   6A 0C            PUSH 0C
00354D51   8D55 E4          LEA EDX,DWORD PTR SS:[EBP-1C]
00354D54   52               PUSH EDX
00354D55   6A 0C            PUSH 0C
00354D57   8D55 F0          LEA EDX,DWORD PTR SS:[EBP-10]
00354D5A   52               PUSH EDX
00354D5B   50               PUSH EAX
00354D5C   8B43 18          MOV EAX,DWORD PTR DS:[EBX+18]
00354D5F   50               PUSH EAX

key call:
-----------------------------------------------------------------------------------
00354D60   E8 7316FFFF      CALL <JMP.&kernel32.DeviceIoControl>   ;call (M3:)
-----------------------------------------------------------------------------------

00354D65   85C0             TEST EAX,EAX
00354D67   74 0C            JE SHORT ntport.00354D75
00354D69   8B45 08          MOV EAX,DWORD PTR SS:[EBP+8]
00354D6C   8B55 E4          MOV EDX,DWORD PTR SS:[EBP-1C]
00354D6F   8910             MOV DWORD PTR DS:[EAX],EDX
00354D71   33C0             XOR EAX,EAX
00354D73   EB 05            JMP SHORT ntport.00354D7A          ;skip err call to (M1.2:)

00354D75   E8 BE16FFFF      CALL <JMP.&kernel32.GetLastError>

(M1.2:)
----------------------------
00354D7A   5F               POP EDI
00354D7B   5E               POP ESI
00354D7C   5B               POP EBX
00354D7D   8BE5             MOV ESP,EBP
00354D7F   5D               POP EBP
00354D80   C2 0400          RETN 4      ;return from (M1:)









(M2:)
-----------------------------

00353EB8   55               PUSH EBP
00353EB9   8BEC             MOV EBP,ESP
00353EBB   53               PUSH EBX
00353EBC   C1E0 10          SHL EAX,10
00353EBF   8B5D 08          MOV EBX,DWORD PTR SS:[EBP+8]
00353EC2   C1E3 0E          SHL EBX,0E
00353EC5   0BC3             OR EAX,EBX
00353EC7   03D2             ADD EDX,EDX
00353EC9   03D2             ADD EDX,EDX
00353ECB   0BC2             OR EAX,EDX
00353ECD   0BC1             OR EAX,ECX
00353ECF   5B               POP EBX
00353ED0   5D               POP EBP
00353ED1   C2 0400          RETN 4



(M3:)
---------------------------
003463D8  -FF25 58C43500    JMP DWORD PTR DS:[<&kernel32.DeviceIoCon>; kernel32.DeviceIoControl   ;jump kernel32 - kernel32.DeviceIoControl (M4:)



kernel32.DeviceIoControl:
(M4:)
--------------------------------------------------

7C801629 > 6A 14            PUSH 14
7C80162B   68 2810817C      PUSH kernel32.7C811028

7C801630   E8 A10E0000      CALL kernel32.7C8024D6      ; call (M5:)  kernel32 sub

7C801635   8B4D 0C          MOV ECX,DWORD PTR SS:[EBP+C]
7C801638   8BC1             MOV EAX,ECX
7C80163A   25 0000FFFF      AND EAX,FFFF0000
7C80163F   3D 00000900      CMP EAX,90000
7C801644   0F95C0           SETNE AL
7C801647   8B75 24          MOV ESI,DWORD PTR SS:[EBP+24]
7C80164A   33DB             XOR EBX,EBX
7C80164C   FF75 1C          PUSH DWORD PTR SS:[EBP+1C]
7C80164F   FF75 18          PUSH DWORD PTR SS:[EBP+18]
7C801652   FF75 14          PUSH DWORD PTR SS:[EBP+14]
7C801655   FF75 10          PUSH DWORD PTR SS:[EBP+10]
7C801658   51               PUSH ECX
7C801659   3BF3             CMP ESI,EBX
7C80165B   75 3E            JNZ SHORT kernel32.7C80169B
7C80165D   3AC3             CMP AL,BL
7C80165F   8D45 DC          LEA EAX,DWORD PTR SS:[EBP-24]
7C801662   50               PUSH EAX
7C801663   53               PUSH EBX
7C801664   53               PUSH EBX
7C801665   53               PUSH EBX
7C801666   FF75 08          PUSH DWORD PTR SS:[EBP+8]
7C801669   0F84 D8000000    JE kernel32.7C801747

7C80166F   FF15 3810807C    CALL DWORD PTR DS:[<&ntdll.NtDeviceIoCon>; ntdll.ZwDeviceIoControlFile   call(M6:)

7C801675   3D 03010000      CMP EAX,103
7C80167A   0F84 B0000000    JE kernel32.7C801730
7C801680   3BC3             CMP EAX,EBX
7C801682   0F8C CA000000    JL kernel32.7C801752
7C801688   8B45 20          MOV EAX,DWORD PTR SS:[EBP+20]
7C80168B   8B4D E0          MOV ECX,DWORD PTR SS:[EBP-20]
7C80168E   8908             MOV DWORD PTR DS:[EAX],ECX
7C801690   33C0             XOR EAX,EAX
7C801692   40               INC EAX

7C801693   E8 790E0000      CALL kernel32.7C802511      ; call (M8:)

7C801698   C2 2000          RETN 20


(M5:)
-----------------------------------------------
7C8024D6   68 909A837C      PUSH kernel32.7C839A90
7C8024DB   64:A1 00000000   MOV EAX,DWORD PTR FS:[0]
7C8024E1   50               PUSH EAX
7C8024E2   8B4424 10        MOV EAX,DWORD PTR SS:[ESP+10]
7C8024E6   896C24 10        MOV DWORD PTR SS:[ESP+10],EBP
7C8024EA   8D6C24 10        LEA EBP,DWORD PTR SS:[ESP+10]
7C8024EE   2BE0             SUB ESP,EAX
7C8024F0   53               PUSH EBX
7C8024F1   56               PUSH ESI
7C8024F2   57               PUSH EDI
7C8024F3   8B45 F8          MOV EAX,DWORD PTR SS:[EBP-8]
7C8024F6   8965 E8          MOV DWORD PTR SS:[EBP-18],ESP
7C8024F9   50               PUSH EAX
7C8024FA   8B45 FC          MOV EAX,DWORD PTR SS:[EBP-4]
7C8024FD   C745 FC FFFFFFFF MOV DWORD PTR SS:[EBP-4],-1
7C802504   8945 F8          MOV DWORD PTR SS:[EBP-8],EAX
7C802507   8D45 F0          LEA EAX,DWORD PTR SS:[EBP-10]
7C80250A   64:A3 00000000   MOV DWORD PTR FS:[0],EAX
7C802510   C3               RETN



(M6:)
-----------------------------------
7C90D27E > B8 42000000      MOV EAX,42
7C90D283   BA 0003FE7F      MOV EDX,7FFE0300
7C90D288   FF12             CALL DWORD PTR DS:[EDX]      ; call (M7:) ntdll
7C90D28A   C2 2800          RETN 28


(M7:)
-----------------------------------
7C90E510 > 8BD4             MOV EDX,ESP
7C90E512   0F34             SYSENTER            ;call return direct to (M6:) 7C90D28A
7C90E514 > C3               RETN


(M8:)
----------------------------------
7C802511   8B4D F0          MOV ECX,DWORD PTR SS:[EBP-10]
7C802514   64:890D 00000000 MOV DWORD PTR FS:[0],ECX
7C80251B   59               POP ECX
7C80251C   5F               POP EDI
7C80251D   5E               POP ESI
7C80251E   5B               POP EBX
7C80251F   C9               LEAVE
7C802520   51               PUSH ECX
7C802521   C3               RETN

_________________
Quaere Vērum
------------------------
    Добавлено: 09:34 10-02-2019   
_RAZAAR_
 62 EGP


Рейтинг канала: 2(11)
Репутация: -13
Сообщения: 2854 Заблокирован
Откуда: РАЗААРЪ - 40Лы от Лаве
Зарегистрирован: 15.04.2008
VBKesha :
БулерМэн :
Тогда наверное можно просто написать приложение которое используя данную функцию и указанную библиотеку просто дергает вай-фай на включение или выключение...

Ну под виндой то да. Но под линухом этой либы нет. Так что придётся писать по другому... Но в целом работы на 30 минут для тех кто знает как, или часов на 8 для тех кто только начал знать как.

VBKesha :

В принципе написать софтину под линух мне проблем не составит, если будешь тестировать конечно.


Если говориш что работы на 30мин , то это действительно то что нужно и разумеется я буду тестировать, просто хотелось бы знать смогу я его потом дизасемблировать чтоб коректировать если вдруг чтото нетак пойдёт, к примеру на вскидку порты 2Е,2F окажутся плавающими?

И да похоже я ошибся ещё раз Расстройство, по схемам выходит что сигнал RF_ALL_OFF относится только к включению выключению GPS и Bluetooth
_________________
Quaere Vērum
------------------------

Последний раз редактировалось: _RAZAAR_ (11:51 10-02-2019), всего редактировалось 1 раз
    Добавлено: 10:53 10-02-2019   
VBKesha
 817 EGP


Рейтинг канала: 7(600)
Репутация: 132
Сообщения: 3329
Откуда: обл.Брянская г. Трубчевск
Зарегистрирован: 07.12.2005
_RAZAAR_ :
в раньшие времена до пентиумов 2 помойму обращения к портам происходило обычно через INT80 если не ошибаюсь, теперь понапридумывали встраивать такие обращения в команды процессора очевидно.

Обращение к портам как было при помощи команды OUT DX, AX так и осталось. Просто в 3 кольце работа этой команды ограничена хоть и возможна. Но чтобы она стала возможна необходимо чтобы в нулевом кольце разрешили доступ к нужному диапазону, однако после этого все смогут. Поэтому ntport использует драйвер, и обращается для записи в порт к драйверу, а это уже отдельная история....
_________________
JumpGate. Quantar Optimus.
Jumpgate(TM) . . . welcome to your next life . . . There's nothing you can't do
    Добавлено: 12:03 10-02-2019   
_RAZAAR_
 62 EGP


Рейтинг канала: 2(11)
Репутация: -13
Сообщения: 2854 Заблокирован
Откуда: РАЗААРЪ - 40Лы от Лаве
Зарегистрирован: 15.04.2008
VBKesha :
_RAZAAR_ :
в раньшие времена до пентиумов 2 помойму обращения к портам происходило обычно через INT80 если не ошибаюсь, теперь понапридумывали встраивать такие обращения в команды процессора очевидно.

Обращение к портам как было при помощи команды OUT DX, AX так и осталось. Просто в 3 кольце работа этой команды ограничена хоть и возможна. Но чтобы она стала возможна необходимо чтобы в нулевом кольце разрешили доступ к нужному диапазону, однако после этого все смогут. Поэтому ntport использует драйвер, и обращается для записи в порт к драйверу, а это уже отдельная история....


A что ты подразумиваеш под драйвером?
Судя по авторскому сайту
NTPort Library enables your Win32 applications to real-time direct access to PC I/O ports without using the Windows Drivers Development Kit(DDK).

real-time direct access to PC I/O ports - подразумивается fast system call жеж, что можно и видеть в конечном итоге куда упирается непосредственное обращение к портам прослеживая ход исполнения.
SYSENTER исполняется естественно на нулевом уровне используя моделезависемые регистры которые Ollydebug возможно непонимает и потому я немогу проследить дальше, a возможно существует плагин для Ollydebug
который даст возможность трейсить дальше на нулевом уровне, или я неуч и на нулевом уровне исполнения ничего трейсить невозможно?
вот раньше для прямого доступа к портам на нулевом уровне использовался INT80 или какойто INT возможно точно непомню, сейчас появилось SYSENTER
_________________
Quaere Vērum
------------------------

Последний раз редактировалось: _RAZAAR_ (12:48 10-02-2019), всего редактировалось 3 раз(а)
    Добавлено: 12:36 10-02-2019   
VBKesha
 817 EGP


Рейтинг канала: 7(600)
Репутация: 132
Сообщения: 3329
Откуда: обл.Брянская г. Трубчевск
Зарегистрирован: 07.12.2005
_RAZAAR_ :
NTPort Library enables your Win32 applications to real-time direct access to PC I/O ports without using the Windows Drivers Development Kit(DDK).

Тут он подразумевает что тебе не придётся для доступа к портам использовать DDK а не то что он его не использует.

_RAZAAR_ :
real-time direct access to PC I/O ports - подразумивается fast system call жеж, что можно и видеть в конечном итоге куда упирается непосредственное обращение к портам прослеживая ход исполнения.

Я там про порты ничего не вижу, а как работает ntport.dll я хорошо знаю, и как в винде организовывается доступ к портам тоже лет 15 назад интересовался.

В общем вот код:
 Cкрытый текст   (кликните здесь для просмотра)
Код:
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdint.h>

void Outport(int fd, uint16_t port, uint8_t value){
    lseek(fd, port, SEEK_SET);
    write(fd, &value, 1);
}

uint8_t Inport(int fd, uint16_t port){
    uint8_t value;
    lseek(fd, port, SEEK_SET);
    read(fd, &value, 1);
    return value;
}



int main(){
    int file;
    uint8_t version, revision;
    file = open("/dev/port", O_RDWR | O_RSYNC | O_SYNC);
    if(file == -1){
        printf("Cant open /dev/port\r\n");
    }

    version = Inport(file, 0x0d);
    revision = Inport(file, 0x0e);

    printf("Version - 0x%02X.0x%02X\r\n", version, revision);

    close(file);
}

Грузишь линукс, создаешь там файл с расширением .c ну например test.c
Кидаешь туда этот код, сохраняешь. Потом пишешь
Код:
cc test.c

должно без ошибок скомпилироваться, потом пишешь
Код:
sudo ./a.out

И пиши сюда что оно выдало.
_________________
JumpGate. Quantar Optimus.
Jumpgate(TM) . . . welcome to your next life . . . There's nothing you can't do
    Добавлено: 12:46 10-02-2019   
_RAZAAR_
 62 EGP


Рейтинг канала: 2(11)
Репутация: -13
Сообщения: 2854 Заблокирован
Откуда: РАЗААРЪ - 40Лы от Лаве
Зарегистрирован: 15.04.2008
VBKesha :
_RAZAAR_ :
NTPort Library enables your Win32 applications to real-time direct access to PC I/O ports without using the Windows Drivers Development Kit(DDK).

Тут он подразумевает что тебе не придётся для доступа к портам использовать DDK а не то что он его не использует.

_RAZAAR_ :
real-time direct access to PC I/O ports - подразумивается fast system call жеж, что можно и видеть в конечном итоге куда упирается непосредственное обращение к портам прослеживая ход исполнения.

Я там про порты ничего не вижу, а как работает ntport.dll я хорошо знаю, и как в винде организовывается доступ к портам тоже лет 15 назад интересовался.

В общем вот код:
 Cкрытый текст   (кликните здесь для просмотра)
Код:
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdint.h>

void Outport(int fd, uint16_t port, uint8_t value){
    lseek(fd, port, SEEK_SET);
    write(fd, &value, 1);
}

uint8_t Inport(int fd, uint16_t port){
    uint8_t value;
    lseek(fd, port, SEEK_SET);
    read(fd, &value, 1);
    return value;
}



int main(){
    int file;
    uint8_t version, revision;
    file = open("/dev/port", O_RDWR | O_RSYNC | O_SYNC);
    if(file == -1){
        printf("Cant open /dev/port\r\n");
    }

    version = Inport(file, 0x0d);
    revision = Inport(file, 0x0e);

    printf("Version - 0x%02X.0x%02X\r\n", version, revision);

    close(file);
}

Грузишь линукс, создаешь там файл с расширением .c ну например test.c
Кидаешь туда этот код, сохраняешь. Потом пишешь
Код:
cc test.c

должно без ошибок скомпилироваться, потом пишешь
Код:
sudo ./a.out

И пиши сюда что оно выдало.



ОК спасибо! щас верну ось проверю и отпишусь


да точно это был INT80
походу и сейчас также можно
_________________
Quaere Vērum
------------------------
    Добавлено: 12:51 10-02-2019   
VBKesha
 817 EGP


Рейтинг канала: 7(600)
Репутация: 132
Сообщения: 3329
Откуда: обл.Брянская г. Трубчевск
Зарегистрирован: 07.12.2005
Посмотрел схематику, там тоже всё весело RF_ALL_OFF_unlock идет на IT8512 и это оочень странное решение так как это ещё один SuperIO с которого потом идёт на пины CN15 и на контроллер питания GPS в общем GPS без неё может и не влючить а насчёт WiFi вопрос.

добавлено спустя 1 минуту:
_RAZAAR_ :
да точно это был INT80
походу и сейчас также можно

Ты линукс и виндовс не путай, там всё разное.
_________________
JumpGate. Quantar Optimus.
Jumpgate(TM) . . . welcome to your next life . . . There's nothing you can't do

Последний раз редактировалось: VBKesha (12:57 10-02-2019), всего редактировалось 1 раз
    Добавлено: 12:57 10-02-2019   
_RAZAAR_
 62 EGP


Рейтинг канала: 2(11)
Репутация: -13
Сообщения: 2854 Заблокирован
Откуда: РАЗААРЪ - 40Лы от Лаве
Зарегистрирован: 15.04.2008
VBKesha :

И пиши сюда что оно выдало.


инклюды нужны
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdint.h>

выдало что их нет там где лежит test.c Улыбка
root@nar1gw1 ~/pm# cc test.c
test.c:1:19: fatal error: fcntl.h: No such file or directory #include <fcntl.h>
compilation terminated.

хотя вообще они есть
root@nar1gw1 /# find / -name "fcntl.h"
/usr/src/linux-headers-3.16.0-7-common/arch/x86/include/uapi/asm/fcntl.h
/usr/src/linux-headers-3.16.0-7-common/include/uapi/asm-generic/fcntl.h
/usr/src/linux-headers-3.16.0-7-common/include/uapi/linux/fcntl.h
/usr/src/linux-headers-3.16.0-7-common/include/linux/fcntl.h
_________________
Quaere Vērum
------------------------
    Добавлено: 14:16 10-02-2019   
VBKesha
 817 EGP


Рейтинг канала: 7(600)
Репутация: 132
Сообщения: 3329
Откуда: обл.Брянская г. Трубчевск
Зарегистрирован: 07.12.2005
Ну тут либо тут чтото выискивать https://askubuntu.com/questions/1075979/fcntl-h-no-such-file-or-directory

либо гуглить, либо попробовать
Код:

cc -I/usr/src/linux-headers-3.16.0-7-common/include/linux/fcntl.h test.c


добавлено спустя 1 минуту:
Говорят должно помочь
sudo apt install libc6-dev
_________________
JumpGate. Quantar Optimus.
Jumpgate(TM) . . . welcome to your next life . . . There's nothing you can't do

Последний раз редактировалось: VBKesha (14:25 10-02-2019), всего редактировалось 1 раз
    Добавлено: 14:25 10-02-2019   
_RAZAAR_
 62 EGP


Рейтинг канала: 2(11)
Репутация: -13
Сообщения: 2854 Заблокирован
Откуда: РАЗААРЪ - 40Лы от Лаве
Зарегистрирован: 15.04.2008
VBKesha :

Говорят должно помочь
sudo apt install libc6-dev


Так точно помогло

Выдает
root@nar1gw1 ~/pm# ./a.out
Version - 0xFF.0xFF
root@nar1gw1 ~/pm#
Расстройство
_________________
Quaere Vērum
------------------------
    Добавлено: 14:44 10-02-2019   
Железный канал: «LPC bus I/O под linux»
На страницу: Пред.  1, 2, 3, 4, 5  След. | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Доброта модераторов - явление чисто сюрреалистическое. (Radick2)

  » LPC bus I/O под linux | страница 3
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18