
Nokia 6300 휴대폰을 Linux 노트북에 연결하면 주로 /dev/ttyACM0
PPP 연결을 만들 수 있는 직렬 포트 장치( ) 로 나타납니다 pppd
. 동일한 USB 장치는 다음과 같은 드라이버 모듈에서 제공하는 usbpn0
type 이라는 신비한 네트워크 인터페이스 도 제공합니다 .phonet
cdc_phonet
$ ip addr show dev usbpn0
35: usbpn0: <POINTOPOINT,NOARP> mtu 65541 qdisc noop state DOWN group default qlen 3
link/phonet 1b peer 00
family 35 ???/0 scope link
$ readlink /sys/class/net/usbpn0/device/driver
../../../../../../bus/usb/drivers/cdc_phonet
하나 있다커널 문서 파일그러나 이러한 유형의 인터페이스에 대해서는 많이 설명되지 않습니다. 패킷에 포함되어야 하는 내용에 대한 설명 없이 Nokia 모뎀에 대한 일종의 패킷 기반 인터페이스라는 것뿐입니다.
이 네트워크 인터페이스는 무엇입니까? 그것은 무엇을 위해 사용됩니까? 그렇다면 어떻게 사용할 수 있나요?
답변1
Phonet은 스마트 서비스 인터페이스의 링크/전송 계층입니다(ISI)는 Nokia 휴대폰에 사용되는 셀룰러 모뎀과 통신하는 데 사용되는 프로토콜입니다. 어떤 의미에서 ISI/Phonet는 AT 명령 세트 및/또는 OBEX에 대한 대안 역할을 할 수 있습니다. 모뎀은 사전 할당된 번호를 사용하여 다양한 "전화 리소스"에 액세스함으로써 다양한 방식으로 구동될 수 있습니다. 예:
- 음성 통화 걸기(
PN_CALL
, 0x01;PN_MODEM_CALL
, 0xc9) - SMS 메시지 보내기 및 받기(
PN_SMS
, 0x02) - 통화 제한 및 착신 전환을 구성하고 USSD 코드(
PN_SS
, 0x06)를 보냅니다. - SIM 카드 잠금 해제 및 전화번호부 액세스(
PN_SIM
, 0x09) - 네트워크 상태 및 신호 강도 확인(
PN_NETWORK
, 0x0a;PN_MODEM_NETWORK
, 0xc8) PN_PHONE_INFO
일련번호, IMEI( , 0x1b;PN_MODEM_INFO
, 0xc5) 등 모뎀 식별자를 확인하세요.- 스마트 카드 기능에 액세스(
PN_UICC
, 0x8c)
주변에서 물어보는 사람들도 봤어요PN_FILE_MANAGER
(0x65) 리소스를 통해 스마트폰의 파일 시스템에 액세스합니다., 그러나 이를 수행하는 작동 코드를 찾지 못했습니다. 내가 아는 한, ISI/Phonet는 IP 트래픽을 전달할 수 없습니다. 여전히 직렬 링크를 통해 PPP를 통해 모바일 네트워크에 연결해야 합니다.
Phonet 클라이언트의 구현은 다음 위치에 있습니다.오포노프로젝트, 특히isimodem
운전사. 일부 코드는 다음에서도 찾을 수 있습니다.무료 스마트폰 네트워크풍요의 뿔 프로젝트,modem_nokia_isi
운전사. 후자의 프로젝트는 oFono isimodem
드라이버의 일부를 사용하여 독립형 라이브러리를 구축합니다.libisi
. Wireshark에는 다음이 포함되어 있습니다.해부학자이 계약을 위해.
답변2
특히 오래된 휴대폰을 Linux 노트북에 연결했을 때...
오래된 전화기는 Nokia이고 모뎀으로 작동하는 것 같습니다.
Phonet 프로토콜 제품군에 대한 전체 문서는 여기에서 찾을 수 있습니다.
https://www.kernel.org/doc/Documentation/networking/phonet.txt
이 인터페이스를 통해 어떤 종류의 데이터를 전송할 수 있습니까?
나는 그것을 일부 터미널 에뮬레이터(Minicom 또는 Telix와 같은)와 연결하고 옛날 모뎀처럼 원시 AT 명령을 교환할 수 있다고 가정합니다. USSD 코드 등을 처리하기 위해 dbus-send를 사용하는 쉘 스크립트를 만들 수도 있습니다. 이를 위해서는 약간의 연구가 필요합니다.