My patches to ReactOS// My Bookmarks with useful info// Future place for Manifest-like texts.
- 1 My Patches/WIP
- 2 Issues: Reported and not yet
- 3 Bookmarks on Topics
- 3.1 Development generic
- 3.2 Repositories: bootCD and liveCD
- 3.3 Core-doc: ReactOS startup procedure described (partly)
- 3.4 Building ReactOS: Hands-on
- 3.5 Tmp: Small notes
- 3.6 Filesystems generic
- 3.7 ReactOS Registry: Editing offline
- 3.8 NTFS
- 3.9 Misc
- 3.10 Serial extension card and MMIO programming
- 3.11 Debug prints in ROS
- 3.12 FreeLoader, debug information, getting
- 3.13 SVN how-to links
(WIP = Work in Progress)
- [Done] dmesg/kmesg command in ReactOS native kernel debugger CORE-5452, described there.
- [Done/not-included] dmesg.exe User-mode utility: done. but not applied (.rbuild system was broken/removed then at the moment + 3 month delay of community considering accepting my kmesg patch).
- [Almost done:forming a patch] (Important thing): MMIO for serial card at kernel early-boot.
(MMIO serial cards doesn't work at all in ROS.)
- Now it works but I don't know how I will test this on real hardware with CORE-8062 bug leaving the computer in non-working state after every restart and turn-off.
- [Done] micropatch: print CPUs count and available RAM at ROS start (work related with low-memory related bug)
- (..describe later..: partitions' bug, FAT32-moved-root-node, etc)
- usetup.c - series: CORE-7969 submitted patch at 08.03.2014: will see how long it will stay not applied. (needed to retest new hanges required by multilanguage support; will do after early-Serial-MMIO)
Issues: Reported and not yet
- CORE-7978 - ReactOS boot code of MBR can't boot USB-HDD due to error reading sectors with int13h_ah=42h
- Added there link to very good explanation how does GRUB stage1 loader work! Just an amazingly detailed description (and also even with joke in stage2!) This link.
- Workaround: use grub-2 to load freeldr.sys
- freeldr.ini also requires editing the rdisk() parameter addressing the disks:
rdisk(1)partition(2) here means: 2nd disk, 2nd partition. (partitions are 1-counted, rdisks - 0-counted.)
- [Yet old bug of 2010/11 times until now] (On my machine: AcerAspire5920g) ReactOS loading process stuck on line ...\Drivers\DISK.SYS when Disk operation mode in BIOS is set to AHCI. Changed the mode to IDE "workarounds" the problem: ntoskrnl.exe reaches the last line ...\Drivers\NDIS.SYS -- and is stuck somewhere more later -- eating 100% CPU. (//Debug-log is required)
So the summary: SATA2 is not fully supported by ReactOS, forced to use IDE.
- Initial note: Nasty bug made me thing my laptop monitor (matrix chip) or videocard goes fried with some code of reactos; Luckily it was just wrong settings somewhere there. Unhealthy bug; leaves bad mood on any tester, it needed to be corrected by any mean.
- Postmortem update*: ***TBW***
Bookmarks on Topics
Interesting topics, links (Started at 2011-04-03)
Here I will keep links to forum topics, wiki pages or other, that seemed to be interesting:
- #reactos - For general discussion and user support, most people are here
- ROS Mumble new thing, '15-Feb
- Issues of ReactOS:
- Jira queries language (SQL-like): JIRA-query fields, JIRA-query operators
- Missing ReactOS Functionality - major things absent of ROS from User PoV
- Sorted by importance (priority now in JIRA) bugs of ReactOS, except of resolved ones
- How PnP Works in ReactOS
- ReactOS, how much money it requires? - here is only the idea, to be converted to become more correct: "How many man-months?", given man-month is more like a myth, reconsider on per-project basis
- HOWTO Become a Reactos Programmer? - forum topic, could be converted to more constructive instruction
- RevEng: Device Driver Reverse Engineering from here
- Command-line-only Win32 from ReactOS? The topic about full OS without GUI ("headless"?).
Repositories: bootCD and liveCD
Core-doc: ReactOS startup procedure described (partly)
- How to Modify the final ISO image - good article, have also notes on how final (bootcd) CD-image is composed, its CD directory structure
- FreeLoader details
- freeldr Architecture and related ReactOS startup steps:
- bootcd and bootrecords
- Windows NT Startup Process/Startup Sequence
- User:Mna./ReactOS startup process light summary
- How the system Finds and Loads Drivers
Building ReactOS: Hands-on
- available ninja targets
- Updating a module code -- do this when the ROS module code was changed and build system didn't notice
Tmp: Small notes
- Strange thing become clear: Ctrl+D doesn't work in 1st stage setup
- FreeLdr debug settings:
BootOptions=DbgOsLoadOptions = "/NOGUIBOOT /DEBUGPORT=COM:io,0x3f8,115200n8 /DEBUGPORT=SCREEN"
- File Systems, a good page
ReactOS Registry: Editing offline
Editing ReactOS registry hives outside ReactOS? --2006-12
> Is it possible at this moment to edit the registry hives outside the ReactOS environment? > I wanted to automate a process to load these registry hives onto the local registry, > add all my changes, unload the hives and create a new ISO.
Simply change registry sources and build your own binary hives from them.
> I guess "make" is the prefered way, there isn't any other method for creating these hives?
There is hive maker in tools\mkhive. You can build it with mingw32-make.exe mkhive
Copy it from output-i386\tools\mkhive\mkhive.exe to (say) Windows\mkhive.exe. Then run this command:
mkhive.exe boot\bootdata output-i386\livecd\reactos\system32\config boot\bootdata\livecd.inf boot\bootdata\hiveinst.inf
Where output-i386\livecd\reactos\system32\config -- is output folder for hives. This is how make livecd does it. And yes, you can add your foo.inf to the end of that command.
- post about FUSE-lib creation attempts in ROS in the "NTFS question" topic
- (ru) NTFS-3G applied to ROS, with unixed 's idea how to integrate into the fuse4win or dokan
- Possible solution for Intel's HDA Audio, high-definition audio
- UniATA project of Alter
- Display Control for Windows, Alter's site; Now part of UI ctl
Serial extension card and MMIO programming
- android kernel driver tty-serial 8250_early.c : as serial debug interface, Android can specify not only IO-ports, but also MMIO and MMIO32 addresses. The "shentek" serial card which I own, requires such communication method, it is based on Oxford chip and gives only mmio interface.
- MMIO MMIO = Memory-mapped_I/O Linux:MmioTrace Home mmiotrace doc
- Note: I have much info/hands-on to add here...
Debug prints in ROS
- KdPrint/DbgPrint and OutputDebugString behavior at Alter's site,
- Mechanism of OutputDebugString - CodeProject the ready code sample,
They (articles) discuss internals and mechanism of OutputDebugString. Definitely Windows too (as unices) uses system calls to store and receive debug messages data to/from kernel debug messages buffer.
Unix dmesg Internals Analysis
for comparison and for creating something equivalent/analogous in ROS Shortly:
- Linux has special system call "syslog" (man 2 syslog)
- FreeBSD uses its special sysctl interface to kernel along with "kern.msgbuf" parameter.
Do we need special system call like Linux, or even more, the whole family of them (sysctl('*')) as in BSD? How to implement simple system call for it, now?
Detailed info for unices:
- syslog(2) - read and/or clear kernel message ring buffer; set console_loglevel
int syslog(int type, char *bufp, int len);
- also /proc/kmsg virtual file, which when being read returns buffer contents
Excerpt from "man proc":
/proc/kmsg This file can be used instead of the syslog(2) system call to read kernel messages. A process must have superuser privileges to read this file, and only one process should read this file. This file should not be read if a syslog process is running which uses the sys‐ log(2) system call facility to log kernel messages. Information in this file is retrieved with the dmesg(1) program.
dmesg in FreeBSD:
- Parameter 'kern.msgbuf' given to sysctl(3) returns contents of kernel message buffer.
- There is also 'kern.msgbuf_clear' to clean the buffer.
These could be probably outdated in sense the USB now is in better working state.
- osdev.org wiki - main page, USB, the same place
- USB for NT4:
- Alter's site reviews: en, ru
- Woodheads opensource(!), GPL USB driver: files backed up "Woodhead--NT4--USB" original link (dead)
- Windows NT 4.0 and USB Quote: "Conclusion: I wish people would stop making comments like 'USB is not supported under NT4' - If you must comment please make it accurate, example: 'Microsoft have made the commercial decision not to provide NT4 USB support - but some manufacturers provide support for specific USB devices on NT4.'"
FreeLoader, debug information, getting
Related with low-memory bug: 1) 4Gb was recognized as 25Mb 2) ROS started with 25Mb silently eat up 100% CPU and infinitely read from boot CD/HDD.
- Debugging the FreeLdr: freeldr.patch turning on debug mode from CORE-5462 -- patch by rafalh