ВНИМАНИЕ! Наша конференция посвящена космической тематике и компьютерным играм. Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!
|
» LPC bus I/O под linux | страница 3 |
|
|
|
Железный канал: «LPC bus I/O под linux» |
|
|
VBKesha
817 EGP
      Рейтинг канала: 7(600) Репутация: 132 Сообщения: 3330 Откуда: обл.Брянская г. Трубчевск Зарегистрирован: 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 раз |
|
|
БулерМэн
420 EGP
   Рейтинг канала: 4(58) Репутация: 68 Сообщения: 1580 Откуда: Гороховец Зарегистрирован: 07.02.2006
 |
|
сообщения не редактируются...
_________________ Сосиска в хлебе |
|
|
VBKesha
817 EGP
      Рейтинг канала: 7(600) Репутация: 132 Сообщения: 3330 Откуда: обл.Брянская г. Трубчевск Зарегистрирован: 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 |
|
|
БулерМэн
420 EGP
   Рейтинг канала: 4(58) Репутация: 68 Сообщения: 1580 Откуда: Гороховец Зарегистрирован: 07.02.2006
 |
|
sub_4FE819(v7, 0x68Fu, 1, 0); //вот тут явно заявлена передача конкретного значения куда нужно
добавлено спустя 1 минуту:
маленькое уточнение, а что означает литера u после значения 0x68F?
_________________ Сосиска в хлебе
Последний раз редактировалось: БулерМэн (02:09 10-02-2019), всего редактировалось 2 раз(а) |
|
|
VBKesha
817 EGP
      Рейтинг канала: 7(600) Репутация: 132 Сообщения: 3330 Откуда: обл.Брянская г. Трубчевск Зарегистрирован: 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 |
|
|
БулерМэн
420 EGP
   Рейтинг канала: 4(58) Репутация: 68 Сообщения: 1580 Откуда: Гороховец Зарегистрирован: 07.02.2006
 |
|
VBKesha : |
Литера u значит unsigned
|
я подозревал, разве для всех значений в таком формате можно указать u?
добавлено спустя 2 минуты:
Хм, внезапно
добавлено спустя 1 минуту:
Тогда наверное можно просто написать приложение которое используя данную функцию и указанную библиотеку просто дергает вай-фай на включение или выключение...
добавлено спустя 2 минуты:
хотя это создаст больше проблем, скорее всего нужно к библиотеке дописать условие, типа дернули вайфай вверх и не давать вызывать выключение вай-фая.
_________________ Сосиска в хлебе
Последний раз редактировалось: БулерМэн (02:17 10-02-2019), всего редактировалось 5 раз(а) |
|
|
VBKesha
817 EGP
      Рейтинг канала: 7(600) Репутация: 132 Сообщения: 3330 Откуда: обл.Брянская г. Трубчевск Зарегистрирован: 07.12.2005
 |
|
БулерМэн : |
Тогда наверное можно просто написать приложение которое используя данную функцию и указанную библиотеку просто дергает вай-фай на включение или выключение...
|
Ну под виндой то да. Но под линухом этой либы нет. Так что придётся писать по другому... Но в целом работы на 30 минут для тех кто знает как, или часов на 8 для тех кто только начал знать как.
_________________ JumpGate. Quantar Optimus.
Jumpgate(TM) . . . welcome to your next life . . . There's nothing you can't do |
|
|
БулерМэн
420 EGP
   Рейтинг канала: 4(58) Репутация: 68 Сообщения: 1580 Откуда: Гороховец Зарегистрирован: 07.02.2006
 |
|
Ввод/вывод на реальном железе под линуксом, когда нет либы - можно нехорошие вещи с компом наделать
_________________ Сосиска в хлебе |
|
|
VBKesha
817 EGP
      Рейтинг канала: 7(600) Репутация: 132 Сообщения: 3330 Откуда: обл.Брянская г. Трубчевск Зарегистрирован: 07.12.2005
 |
|
БулерМэн : |
Ввод/вывод на реальном железе под линуксом, когда нет либы - можно нехорошие вещи с компом наделать
|
А либа чем тебе помешает сделать плохие вещи?
_________________ JumpGate. Quantar Optimus.
Jumpgate(TM) . . . welcome to your next life . . . There's nothing you can't do |
|
|
БулерМэн
420 EGP
   Рейтинг канала: 4(58) Репутация: 68 Сообщения: 1580 Откуда: Гороховец Зарегистрирован: 07.02.2006
 |
|
хотя да, там ведь запись/чтение напрямую, ничем пожалуй
_________________ Сосиска в хлебе |
|
|
_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
------------------------ |
|
|
_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 раз |
|
|
VBKesha
817 EGP
      Рейтинг канала: 7(600) Репутация: 132 Сообщения: 3330 Откуда: обл.Брянская г. Трубчевск Зарегистрирован: 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 |
|
|
_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 раз(а) |
|
|
VBKesha
817 EGP
      Рейтинг канала: 7(600) Репутация: 132 Сообщения: 3330 Откуда: обл.Брянская г. Трубчевск Зарегистрирован: 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
Кидаешь туда этот код, сохраняешь. Потом пишешь
должно без ошибок скомпилироваться, потом пишешь
И пиши сюда что оно выдало.
_________________ JumpGate. Quantar Optimus.
Jumpgate(TM) . . . welcome to your next life . . . There's nothing you can't do |
|
|
_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
Кидаешь туда этот код, сохраняешь. Потом пишешь
должно без ошибок скомпилироваться, потом пишешь
И пиши сюда что оно выдало.
|
ОК спасибо! щас верну ось проверю и отпишусь
да точно это был INT80
походу и сейчас также можно
_________________ Quaere Vērum
------------------------ |
|
|
VBKesha
817 EGP
      Рейтинг канала: 7(600) Репутация: 132 Сообщения: 3330 Откуда: обл.Брянская г. Трубчевск Зарегистрирован: 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 раз |
|
|
_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
------------------------ |
|
|
VBKesha
817 EGP
      Рейтинг канала: 7(600) Репутация: 132 Сообщения: 3330 Откуда: обл.Брянская г. Трубчевск Зарегистрирован: 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 раз |
|
|
_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
------------------------ |
|
|
|
|
|
Железный канал: «LPC bus I/O под linux» |
|
К списку каналов | Наверх страницы |
Цитата не в тему: У меня постоянно крадут идеи. Причем некоторые пользуются для этого машиной времени. (пожаловался BuH)
|
» LPC bus I/O под linux | страница 3 |
|