Terjemahan artikel " Air mata berkeping-keping " dari blog Jason GinTL; DR: ya, pada osiloskop Keysight 1000 X-Series, Anda benar-benar dapat menjalankan Doom! Namun, ini tidak mudah dilakukan.
Keysight DSOX1102GOsiloskop harus ada di gudang seninya setiap penggemar elektronik yang menghargai diri sendiri. Singkatnya, osiloskop memungkinkan Anda mempelajari gelombang sinyal listrik di sirkuit, dan osiloskop digital (DSO) sangat diperlukan karena mereka dapat menemukan kesalahan langka pada sinyal yang tidak dikenali oleh osiloskop analog atau multimeter.
Topik artikel saya adalah
DSOX1102G dari Keysight Technologies (sebelumnya Agilent), dari lini oscilloscopes murah mereka, yang memiliki rasio harga terhadap kualitas yang baik dibandingkan dengan produk pesaing. Seperti kebanyakan osiloskop mereka, model ini menjalankan
OS bawaan Windows 6.0 CE tertanam (juga dikenal sebagai Windows CE atau WinCE), tetapi, seperti pada sebagian besar aplikasi WinCE, Anda hampir tidak pernah melihat antarmuka-nya - tersembunyi di balik dibuat khusus antarmuka pengguna.
Tahap 1: Kebangkitan
Ketika seri Keysight 1000-X diluncurkan pada awal 2017, salah satu pengulas dengan
Hackaday memperhatikan bahwa metode menyimpan data pada osiloskop ini kadang-kadang menyebabkan crash dan reboot, dan mencatat bahwa penunjuk mouse dapat dilihat di layar selama beberapa detik sebelum memuat . Ada gif di posnya, di mana dia menyimpan file yang menyebabkan crash, dan saya melihat sesuatu yang aneh pada salah satu bingkai animasi - di sana Anda dapat membedakan taskbar Windows segera sebelum layar hitam dengan kesalahan. Menarik! ..

Setelah memenangkan osiloskop saya berkat kontes Bulan Lingkup dari Keysight, selama beberapa bulan saya tidak memikirkannya sampai saya menemukan layar dengan kegagalan saya sendiri. Dalam kasus saya, saya menemukan bahwa header Windows CE terlihat di atas penangan kesalahan osiloskop; menyeret header meninggalkan tanda, dan akhirnya menggantung WinCE. Ini sangat jarang terjadi, oleh karena itu, setelah menemukan kegagalan setelah itu, saya hanya mengizinkan pawang untuk memindai sistem file dan reboot OS.
Namun, saya tertarik dengan ini, dan saya ingin tahu banyak tentang apa yang terjadi dengan sistem WinCE yang mendasarinya. Saya menemukan bahwa port USB pada osiloskop cukup rentan kesalahan, dan hanya membalikkan flash drive ke port dapat menyebabkan crash. Namun, ini tidak cukup untuk mengumpulkan jumlah informasi yang diperlukan, karena itu adalah metode yang tidak dapat diandalkan.
Maka mulailah pencarian saya untuk akses ke desktop WinCE.
Pada awalnya saya mencoba solusi perangkat lunak murni, mencoba membuat file pembaruan firmware .ksx (sebenarnya, itu hanya arsip .cab), yang dapat mematikan program osiloskop dan membuka Windows Explorer - tidak berhasil. Perangkat lunak osiloskop mengeluarkan pesan kesalahan yang mengeluh bahwa tidak mungkin untuk membuka file. Ternyata solusi seperti itu tidak akan berfungsi, bahkan jika saya memaksanya untuk mengunduh file pembaruan, karena perangkat lunak osiloskop tidak pergi ke desktop selama pembaruan. Setelah menemui kendala serius pertama ini, saya sementara mengesampingkan rasa ingin tahu dan menggunakan osiloskop untuk tujuan yang dimaksudkan.
Tahap 2: perhatikan lebih dalam
Karena keingintahuan saya, saya pernah memutuskan untuk melihat apakah osiloskop dapat membaca dan menulis disket 3,5 "(atau, seperti kata orang muda, ikon save save) melalui port USB - dan itu bisa! Namun, saya melihat satu masalah aneh: osiloskop crash jika saya meninggalkan drive di port USB ketika saya menyalakan Eureka! Saya menemukan cara untuk menyebabkan crash.
Di sini, sayangnya, rintangan serius kedua menunggu saya. Kegagalan boot ini terjadi hanya jika satu perangkat dimasukkan dalam port USB - drive. Tidak ada kegagalan jika saya menggunakan hub USB yang menyertakan drive. Ini berarti bahwa saya harus beralih dengan sangat cepat antara drive dan mouse USB dengan keyboard. Buruan untuk melepas drive secepat mungkin dan memasukkan kombinasi keyboard dan touchpad ke USB selama proses booting melelahkan dan menjengkelkan. Saya membutuhkan solusi yang lebih baik - solusi perangkat keras.
Sakelar A / B khusus untuk USB, dibuat oleh saya untuk penggantian perangkat yang cepatDengan menggunakan kabel USB lama, hub USB yang mati, dan sakelar DPDT, saya membuat sakelar USB A / B untuk menyederhanakan dan mempercepat proses perpindahan antar perangkat. Dengan menggunakan metode ini, saya berhasil mencoba menjalin kontak dengan OS WinCE selama sepersekian detik, sementara taskbar terlihat di layar, dan sampai penangan kesalahan memecahkan semua raspberry kepada saya. Menggunakan sihir dalam pemotretan gerak lambat Samsung Galaxy S9 saya, saya dapat menentukan bahwa saya dapat mengirim penekanan tombol ke WinCE dan memprosesnya - bahkan di screensaver sistem! Saya dapat memperoleh informasi tentang sistem dengan menekan tombol secara membabi buta, dan kemudian mempelajari responsnya ketika perangkat lunak osiloskop mogok. Lalu aku menemui rintangan kedua.
Kemungkinan interaksi yang sangat singkat dengan WinCE baik, tetapi itu tidak berguna, karena saya tidak bisa mengendalikannya sampai penangan kesalahan mem-boot ulang sistem. Pawang menempel erat ke OS, dan tidak ada menggesekkan keyboard dan Ctrl + Alt + Delete memungkinkan saya untuk kembali ke WinCE.
Tahap 3: mencari pijakan
Dan sekali lagi, rasa ingin tahu saya yang bermain secara berkala menjadi berguna ketika saya memutuskan untuk menggunakan
Sony Clie PEG-NX73V lama saya (genggam pada PalmOS dari tahun 2003) sebagai drive USB. Itu memiliki fungsi impor data yang memungkinkan Anda untuk menarik dan melepas file ke kartu memori dengan cara yang sama seperti pada disk yang dapat dilepas.
Sama seperti dengan drive USB, sistem crash terjadi ketika saya menyalakan osiloskop tanpa mengeluarkan PDA. Namun, kali ini penangan kesalahan memutuskan bahwa sistem file PDA adalah bagian firmware yang rusak, dan menyarankan untuk mengunduh pembaruan firmware dari flash drive USB eksternal.

Perilaku ini tidak biasa, kadang-kadang perangkat lunak osiloskop masih dimuat, dan jendela yang sangat aneh muncul dari WinCE dengan pointer mouse biru cerah meninggalkan jejak di layar. Namun, dalam keadaan aneh ini, saya berhasil menarik jendela perangkat lunak osiloskop InfiniiVision ke samping, dan saya mencoba memencet OS. Tetapi perangkat lunak osiloskop berperilaku sangat agresif dan mendapatkan kembali fokus setiap kali setelah mengklik di luar jendela. Setelah beberapa keributan dengan OS yang dicat aneh, saya bisa menyiasatinya. Saya tidak dapat melihat sistem file, karena saya tidak dapat mengambil kendali untuk waktu yang lama dari jendela perangkat lunak osiloskop, tetapi saya dapat memanggil kotak dialog properti sistem, di mana tertulis bahwa osiloskop didasarkan pada Windows CE 6.00, dan RAM 100 MB.

Kemudian saya memutuskan untuk mencari-cari melalui
forum EEVblog, di mana orang-orang secara aktif mencoba meretas osiloskop untuk membuka kemungkinan tambahan. Di sana saya menemukan bahwa perangkat lunak sedang mencari file infiniiVisionStartupOverride.txt di root USB flash drive, dan jika ya, ia mencoba mengunduh perangkat lunak osiloskop darinya. Dan meskipun, tampaknya, firmware tidak benar-benar mengunduh perangkat lunak dari flash drive, proses ini mengganggu peluncuran perangkat lunak osiloskop, dan kemudian tidak ada yang mengambil kendali OS dari saya. Sejak saat itu semuanya menjadi lebih menarik - penangan kesalahan membuka jendela Explorer, dan memasukkan "*. *" Di bidang nama file, saya dapat mulai mengobrak-abrik sistem file osiloskop dan flash drive USB! Inilah yang saya butuhkan untuk mendapatkan kendali atas WinCE. Namun, saya menemui kendala lain: osiloskop reboot setelah 60 detik, karena itu saya tidak punya banyak waktu untuk menggali dalam sistem operasi.
Permintaan pembaruan firmware DSOX1102G dengan dialog pemilihan file dari flash drive
Manajer tugas Windows CE menunjukkan proses yang berjalan pada layar pemulihan firmwareSetelah menyalin beberapa alat Windows CE, misalnya, Windows CE Task Manager, saya perhatikan dua proses menarik yang dimulai ketika penangan kesalahan masih terlihat - recoverInfiniiVision.exe dan processStartupFolder.exe; Rupanya, yang pertama adalah penangan kesalahan yang tidak memberi saya akses ke WinCE setelah crash perangkat lunak osiloskop. Setelah mengalahkan proses kedua menggunakan iTaskMgr (versi gratis dari task manager WinCE tidak memungkinkan proses pembunuhan) saya dapat menjaga osiloskop dari reboot, dan setelah mengalahkan yang pertama, saya melihat desktop WinCE bersih - dan di sini saya di dalam! Sayangnya, saya tidak dapat mengembalikan taskbar, itulah sebabnya menavigasi OS agak tidak nyaman.
Saya membuat folder baru di desktop untuk membuka Explorer, dan akhirnya saya bisa mempelajari sistem file osiloskop. Program Total Commander / CE, yang memiliki editor teks built-in, yang tidak ada dalam versi WinCE ini, banyak membantu.
Menggali ke dalam sistem file menggunakan Total Commander / CE (belum ada taskbar)Tahap 4: kontrol penuh
Sekarang, setelah berhasil masuk ke desktop biru langit, untuk pengalaman penuh WinCE, saya harus mengembalikan taskbar. Googling, naik di Stack Overflow, saya melempar program kecil untuk ini. Membuka dari Explorer, saya mendapat versi lengkap dari desktop WinCE! Akhirnya, saya memiliki kendali penuh atas OS dasar!
Freedom - desktop WinCE lengkap pada osiloskop!Sejak saat itu saya mulai mencari-cari melalui sistem file dan melihat alat menarik apa yang dapat ditemukan di sana. Penerjemah baris perintah tidak ingin memulai, tetapi saya mencari-cari di registri dan menemukan kunci HKEY_LOCAL_MACHINE \ Drivers \ Console \ OutputTo, yang nilainya 0xFFFFFFFF. Dengan mengubahnya menjadi 0, saya berhasil membuat Command Prompt terlihat di desktop, jadi saya membuat program kecil lain yang melakukan hal itu.
Semuanya berjalan dengan baik, saya membuat file batch dengan semua perintah yang diperlukan untuk mematikan perangkat lunak osiloskop, penangan folder mulai, penangan kegagalan, mengembalikan bilah tugas dan memungkinkan peluncuran Command Prompt. Namun, PDA saya diminta untuk membuka menu penangan kesalahan, yang berarti bahwa orang lain tidak akan dapat mereproduksi efek seperti itu.
Mengaduk-aduk lebih lanjut, saya menemukan bahwa segera setelah layar splash muncul dan LED pada panel mulai berkedip, WinCE mulai memproses penekanan tombol bahkan tanpa perangkat lunak yang menjatuhkan perangkat. Menekan win + U menangguhkan osiloskop, karena ini membuka menu Mulai dan memilih opsi Tangguhkan (dan OS tidak memiliki kesempatan untuk mengembalikan kontrol setelah itu, karena osiloskop hanya memiliki tombol mematikan). Dengan mengingat hal ini, saya mengganti nama file saya menjadi a.bat sehingga namanya lebih mudah untuk diketik, dan mencoba menjalankannya saat memuat melalui win + R, perintah \ usb \ a.bat dan tekan Enter. Tetapi osiloskop sebagai hasilnya hanya menunjukkan screen saver di layar, meskipun di latar belakang WinCE masih hidup, dan saya tidak bisa melihat apa yang terjadi di sana. Ternyata penangan kesalahan adalah komponen yang diperlukan untuk menunjukkan desktop OS, dan saya hanya perlu menambahkan beberapa baris ke file batch untuk memulai dan kemudian menghentikan penangan kesalahan. Dengan menambahkan sentuhan akhir ini, saya dapat (secara semi-otomatis) memuat osiloskop tepat sebelum desktop muncul, hanya menggunakan USB flash drive, mouse, dan keyboard!
Tahap 4: Ya, ini menjalankan DOOM!
Setelah mendapatkan akses ke WinCE, saya akhirnya bisa menjawab pertanyaan: "Apakah Doom mulai dari itu?" Dan, ternyata, itu benar-benar dimulai! Setelah memulai osiloskop, butuh satu setengah tahun, tapi akhirnya saya mencapai tonggak sejarah ini.
Ini bukan tipuan: Anda dapat menjalankan Doom pada osiloskop Keysight 1000 X!
Doom II berjalan di DSOX1102G saya! (3 frame per detik)
Meluncurkan Doom dalam jendela 320 × 240 memungkinkan untuk memeras frame yang cukup per detik untuk game. Lihatlah betapa palet warna!Pada artikel selanjutnya saya akan bermain sedikit lebih banyak dengan video game legendaris ini pada sepotong besi, yang tidak pernah dimaksudkan untuk game.
Doom beraksi pada resolusi 320 × 240, 256 warna! Pada osiloskop!File untuk diunduh
Saya mengunggah file yang mungkin Anda perlukan untuk mencoba hal yang sama pada osiloskop saya - tetapi ingat, saya tidak bertanggung jawab untuk mengubahnya menjadi batu bata atau sesuatu yang tidak menyenangkan! Saya menguji semua ini hanya pada DSOX1102G saya, tetapi saya menduga bahwa model lain dari seri 1000 X dan osiloskop Keysight lainnya yang memiliki fitur pemulihan firmware dapat bekerja juga. Firmware osiloskop dibuat agar semua WinCE berjalan dalam RAM dan tidak disimpan setelah reboot, sehingga semua perubahan pada OS yang merusak sistem tidak akan mengubah osiloskop menjadi bata (file dengan firmware ada di direktori NAND flash drive yang tidak dapat dibuka melalui Explorer, tetapi Anda hanya dapat memanggil berdasarkan nama).
Flash drive perlu diformat dalam FAT atau FAT32, dan unzip arsip zip
Scope Liberator ke dalam akarnya. Petunjuk ada di readme.txt.
Jika Anda tertarik pada
kode sumber program bantu yang mengembalikan taskbar dan juru bahasa baris perintah, saya juga mempostingnya.